Electronic television program guide schedule system and method with remote product ordering

ABSTRACT

An electronic program schedule system with product ordering capability which includes a data processor for receiving program schedule information for a plurality of programs, and a user control apparatus, such as a remote controller, for generating user control commands and transmitting signals to the data processor in response thereto. The television program schedule information is displayed on a display apparatus such as a television receiver. A video display generator receives video control commands from the data processor and program schedule information and displays a portion of the program schedule information on the receiver. The program schedule information indicates the availability of a product or service for certain of the programs included in the program information, wherein the product or service is associated with the program, such as a program transcript or videocassette. The viewer utilizes the remote control apparatus to generate a first command for displaying information on the receiver describing the product or service, and a second command for placing an order for the product or service. The data processor receives the user control commands and in response to the first command causes the video display generator to display information describing the product or service and in response to the second command generates an order for the product or service.

[0001] This application is a continuation of U.S. patent applicationSer. No. 09/428,588, filed Oct. 27, 1999, which is a continuation ofU.S. patent application Ser. No. 09/368,198, filed Aug. 4, 1999, nowU.S. Pat. No. 6,275,268, which is a continuation of U.S. patentapplication Ser. No. 08/428,809, filed Apr. 24, 1995.

BACKGROUND OF THE INVENTION

[0002] This invention relates to an electronic program schedule system,which provides a user with schedule information for broadcast orcablecast programs viewed by the user on a television receiver. Moreparticularly, it relates to an electronic program guide that providesthe user with the capability to order products and services remotely atthe user location simply by depressing a button on a remote controldevice or other user-controlled device.

[0003] Electronic program guides (“EPGs”) for television systems areknown in the art. For example, one prior system used an electroniccharacter generator to display textual schedule information on the fullscreen of a television receiver. Other prior systems presentedelectronically stored program schedule information to a user for viewingwhile allowing the user to select display formats. Still other systemsemployed a data processor to input user-selection criteria, then storedonly the program schedule information meeting these criteria, andsubsequently used the stored information to automatically tune aprogrammable tuner or activate a recording device at the time ofbroadcast of the selected television programs. Such prior systems aregenerally discussed in “Stay Tuned for Smart TV,” published in theNovember 1990 issue of Popular Science.

[0004] Collectively, the prior electronic program systems may bedifficult to implement and cumbersome to use. They also fail to provideviewing capabilities that address in a more realistic manner the viewinghabits of the users of these electronic program systems. Moreover, manyof these systems are complex in their design and are expensive toimplement. Ease of use and economy are primary concerns of televisionprogram distributors and viewers as they contemplate dramatic increasesin the number and nature of program networks and other television-basedservices. And, as the number of television channels available to a userincreases dramatically with the advent of new satellite and cable-basedtechnologies, the utility of these prior systems substantiallydiminishes.

[0005] These prior-art systems also fail to provide the user withsufficient information, for example pricing and the like, aboutpay-per-view events, premium services or other packaged programming towhich the user does not subscribe, nor do they provide the user with thecapability to automatically purchase such programming on demand orimpulse. Moreover, these prior-art systems are deficient in that theyfail to provide an efficient and automatic method of updating orreplacing the application software programs that implement theelectronic guide at the user sites, relying instead on manual or othercumbersome forms of revision or replacement or hardware-based systemsthat can not be updated without physical replacement of integratedcircuits and/or other parts.

[0006] Nor do these prior electronic guide systems have the capabilityof linking the user to other applications or information systems whichare not part of the electronic program guide application or data.

[0007] Nor do these prior electronic guide systems provide videopromotion of television programs and services that are functionallylinked and visually displayed in an integrated fashion. Programpromotion is an important element of the effective marketing oftelevision programming. The promotion of pay-per-view pay (i.e., “a lacarte”) programs and other unregulated program services is particularlyimportant to cable television operators in the wake of re-regulation bythe federal government. The current method of promoting such programmingusing video is through dedicated “barker” channels that use full screencontinuous trailers (i.e., previews) which may or may not be accompaniedby prices and ordering information. Recently, such promotional videoshave been shown in split screens where part of the screen shows generalschedule information for a time period roughly corresponding to the timeperiod during which the general program being promoted is shown.Accordingly, there exists a need for an electronic program guide whichcan provide improved display and linking of video promotions withprogram schedule information and order processing functions.

[0008] The prior electronic program guides also fail to provide the userwith a simple and efficient method of controlling access to individualchannels and individual programs. The amount of adult situationsinvolving sex and violence has steadily increased during the last 40years. The issue of how this affects children or other viewers hasgained national attention. Providing a parent with the ability tolock-out a channel is a well known and widespread feature of certaintelevision receivers and cable converter boxes. Despite thisavailability, the feature is seldom used by parents. The mainimpediments to its effective use are the cumbersome ways in which it isgenerally implemented, as well as the requirement that entire channelsbe blocked in order to block access to any objectionable programming. Achannel-oriented parental lock is unfair to other programmers on theblocked channel—who, for example, offer adult-oriented programming inthe evening and youth-oriented programming the following morning—andinconvenient for viewers who want access to such programs. Thus, thereis a particular need for a system which provides password control toindividual programs and channels using a flexible and uncomplicatedon-screen user interface.

[0009] The prior electronic program guides are also deficient in thatthey do not provide the user with the ability to view on demand currentbilling status and, thus, a need exists for a system which can providethe user with current billing information on the user's demand.

[0010] An additional problem with prior program guides is that whendisplaying schedule information in grid format, i.e., columnsrepresenting time slots and rows representing channels, program titlesgenerally are width-wise truncated to fit into the cells of the grid.The width of a grid cell varies with the duration of the program. Sincea 30 minute program is allotted only a small amount of space for theprogram title and description, titles and/or descriptions for half andeven full hour programs often must be truncated in order to fit into theallotted space. Some systems simply cut off the description of a programwithout abbreviating it in any way, such that the user is unable todetermine the subject matter of the program. For example, a recenttelevision program display included the following text in a grid cell:“Baseball: Yankees v.” Although some systems partially alleviate thisproblem by providing two lines of text in each grid cell, this solutionis not ideal because program descriptions may still be truncated.

[0011] A similar problem arises as the time slots change, eitherautomatically or in response to a user control command. Typically, 90minutes of schedule information is displayed at one time and the 90minute window is shiftable in 30-minute increments. In the case where a30 minute shift causes a 30 minute size grid cell to display, e.g., atwo-hour movie, it is likely that the full title of the movie will notfit into the cell. Truncation of the title is thus required in thissituation as well. In this case, while two lines of text may bedesirable to fit the title in the 30 minute cell, the 60 and 90 minutecells may require only one line of text to display the title.

[0012] The prior electronic program guides also lack a method forcreating a viewing itinerary electronically while still viewing aprogram currently appearing on the television receiver. Moreover, theseprior program guides leave much guess work for the user as he navigatesthrough a sequence of channels. When skimming through channels toascertain the program then being displayed on any channel, commonlyknown as “channel surfing,” the user needs to guess which program iscurrently being aired from the video encountered as the user surfsthrough the channels. Since much—in some cases, up to 30%—of theprogramming appearing on any given channel at any given time isadvertising or other commercial programming, the user is not providedwith any clues as to what program is appearing on a selected channel ata given time and must therefore wait until the advertisement orcommercial is over before ascertaining the program then appearing on theselected channel. Thus a need exists for a program guide which displayscurrent program schedule information for each channel as the user surfsthrough the available channels.

[0013] Interactive home shopping services are also known in the art.Lacking in the art, however, is an interactive home shopping servicedeployed in conjunction with an EPG permitting users of the EPG toremotely order products and services associated with the EPG or theprogram listings included in the EPG.

[0014] In addition, with the availability of techniques forelectronically blocking the home recording of copyrighted programs, itis now possible to prevent the loss of copyright royalties and otherrevenues that result when a home viewer makes an archival copy of acopyrighted program. Many viewers may be willing to pay for professionalcopies of these programs that they can no longer copy themselves byrecording off-the-air. As a result, a new marketing opportunity isavailable if a convenient means for acquiring purchased archival copiesof copyrighted programs can be provided. Users who would otherwise haveproduced an amateur recording of a program using consumer equipment maydecide to purchase a professionally produced and packaged copy from alicensed distributor if they are unable to record the program on theirown.

[0015] According, there is a need in the art for a simplified electronicprogram schedule system that may be more easily implemented, and whichis appealing and efficient in operation. There is also a need to providethe user with an electronic program schedule system that displays bothbroadcast programs and electronic schedule information in a manner notpreviously available with other electronic program schedule systems,particularly those using a remote controller.

[0016] For example, there is a particular need for a flexible programschedule system that allows a user to view selected broadcast programson a portion of the screen of the television receiver whilesimultaneously viewing program schedule information for other channelsand/or services on another portion of the screen. There is also a needfor such a program schedule system that permits the user to select froma plurality of selectable display formats for viewing the programschedule information. It is also preferred to have a system thatindicates to the user those keys on the remote controller that areactive in any particular mode of operation. There also exists a need forsuch a system that will give a user the capability to set a programmablereminder for viewing a program scheduled to air at a future time.

[0017] There is also a need for an electronic guide system providing theuser with comprehensive information about pay-per-view events, premiumservices or other packaged programming to which the user does notordinarily subscribe, and which provides the user with the capability toautomatically purchase such programming on demand or impulse. There isalso a need for an electronic guide system providing a reliable andefficient method of updating or replacing the application software thatimplements the electronic guide at the user sites.

[0018] There also exists a need for an electronic program guide thatoperates as a shell or window to provide the user with the capability toaccess other applications or information systems that are not part ofthe electronic program guide application or data.

[0019] There also exists a need for an interactive home shopping servicedeployed in conjunction with an EPG permitting users of the EPG toremotely order services and products associated with the EPG or theprogram listings included in the EPG.

[0020] There is also a need for a convenient means for purchasingarchival copies of copyrighted programs that cannot be recorded byviewers.

[0021] It is accordingly an object of the present invention to provide asystem that will allow the user to view a broadcast program while, atthe same time, interactively viewing program schedule information forother programs.

[0022] It is another object of the present invention to provide the userwith the ability to select from among a plurality of display formats forthe program schedule information.

[0023] It is yet another object of the present invention to indicate tothe user of the program schedule system those keys on the remotecontroller active in the particular mode of operation of the system atthe time of use.

[0024] It is a still further object of the present invention to providethe user of the electronic program schedule system with the capabilityof setting programmable reminder messages for any future program.

[0025] It is yet a further object of this invention to provide thesystem user with comprehensive information about pay-per-view events,premium services or other packaged programming to which the user doesnot subscribe and the capability to automatically purchase suchprogramming on demand or impulse.

[0026] It is another object of the present invention to provide anelectronic guide system that provides a reliable and efficient method ofupdating or replacing the application software programs that implementthe electronic guide at the user sites.

[0027] It is still another object of the electronic program guide tooperate as a shell or window to provide the user with the capability toaccess other applications or information systems which are not part ofthe electronic program guide application or data.

[0028] It is yet another object of the electronic program guide toprovide a system whereby video promotion of television programs andservices are functionally linked and visually displayed in an integratedfashion to facilitate the marketing and sale of such programs andservices.

[0029] It is still a further object of the present invention to providepassword control for access to individual programs, as well as channels,using a protected interactive flexible and uncomplicated on-screeninterface.

[0030] Another object of the present invention is to provide the userwith current programming information for all programs as the user surfsthrough the available channels.

[0031] It is yet a further object of the present invention to provide asystem in which the user can access his current billing information ondemand.

[0032] It is another object of the present invention to provide a systemwhich overlays television program listings against varying backgroundviews.

[0033] It is yet another object of the present invention to provide animproved display of text in the grid cells comprising a page oftelevision program listings.

[0034] It is a further object of the invention to provide an electronictelevision program guide with an interactive home shopping service forordering products and services associated with the EPG or a particularprogram.

[0035] It is a further object of the invention to provide an electronictelevision program guide with an interactive home shopping service forordering products and services associated with the EPG or a particularprogram simply by depressing a button on a remote control device orother user-controlled selection means.

[0036] These and other objects of the invention are achieved by anelectronic program schedule system which includes a receiver forreceiving broadcast, satellite or cablecast television programs for aplurality of television channels and a tuner for tuning a televisionreceiver to a selected one of the plurality of channels. A dataprocessor receives and stores in a memory television program scheduleinformation for a plurality of television programs to appear on theplurality of television channels. A user control apparatus, such as aremote controller, is utilized by a viewer to choose user controlcommands and transmit signals in response to the data processor whichreceives the signals in response to user control commands. A televisionreceiver is used to display the television programs and televisionprogram schedule and other information. A video display generatorreceives video control commands from the data processor and programschedule information from the memory and displays a portion of theprogram schedule information in overlaying relationship with atelevision program appearing on a television channel in at least onemode of operation of the television programming guide. The dataprocessor controls the video display generator with video controlcommands, issued in response to the user control commands, to displayprogram schedule information for any chosen one of the plurality oftelevision programs in overlaying relationship with at least onetelevision program then appearing on any chosen one of the plurality ofchannels on the television receiver.

[0037] The EPG system of the present invention is further provided withan interactive home shopping service permitting the user to orderproducts or services associated with a program from an EPG display usinga remote control device or other user-controlled selection means. Thedata processor is configured to generate user product and servicerequests and provide them to a central location for processing.Telephone lines, cable, optical fiber, or wireless transmissions may beused for providing the requests to the central location.

BRIEF DESCRIPTION OF THE DRAWINGS

[0038]FIG. 1 is a block diagram showing various components of thepreferred embodiment of the invention herein.

[0039]FIG. 2 is a block diagram showing the combination of program andschedule information by the video overlay device utilized in thepreferred embodiment of the invention.

[0040]FIG. 3 depicts a remote controller that can be used in connectionwith the preferred embodiment of the electronic program guide system ofthe present application.

[0041]FIG. 4 depicts an alternative embodiment of the remote controllershown in FIG. 3.

[0042]FIG. 5 shows an overlay appearing on a television screen in onemode of operation of the preferred embodiment of the present invention.

[0043]FIG. 6 is a menu that appears on a television screen in a MENUmode of operation of the preferred embodiment of the present invention.

[0044]FIG. 6A is yet another menu that appears on a television screen ina MENU mode of operation of the preferred embodiment of the presentinvention.

[0045]FIG. 7 depicts a Viewer Preference Menu that appears on atelevision screen in one aspect of the preferred embodiment of thepresent invention.

[0046]FIG. 8 shows a Preferred Channel selection submenu.

[0047]FIG. 9 shows an impulse ordering menu that appears on a televisionscreen in one aspect of the preferred embodiment of the presentinvention.

[0048]FIG. 10 shows a Premium Services submenu that appears in one modeof operation of the preferred embodiment of the present invention.

[0049]FIG. 11 shows a graphic overlay appearing on a television screenin a BROWSE mode of operation of the preferred embodiment of the presentinvention.

[0050]FIG. 12 shows a graphic overlay appearing on a television screenin a BROWSE mode of operation of the preferred embodiment of the presentinvention having different information from that shown in FIG. 11.

[0051]FIG. 12A shows a graphic overlay appearing on a television screenin a BROWSE mode of operation in the present invention displayingschedule information for a time and channel other than that shown inFIG. 11.

[0052]FIG. 13 shows a graphic overlay appearing in a REMINDER mode ofoperation of the preferred embodiment of the present invention.

[0053]FIG. 14 shows yet another graphic overlay appearing in a REMINDERmode of operation of the preferred embodiment of the present invention.

[0054]FIG. 15 is yet another menu that appears on a television screen ina MENU mode of operation of the preferred embodiment of the presentinvention.

[0055]FIG. 16 is yet another menu that appears on a television screen ina MENU mode of operation of the preferred embodiment of the presentinvention.

[0056]FIG. 17 is yet another menu that appears on a television screen ina MENU mode of operation of the preferred embodiment of the presentinvention.

[0057]FIG. 18 shows a grid listing of schedule information displayed inan All Listings mode of operation of the preferred embodiment of thepresent invention.

[0058]FIG. 19 shows schedule information displayed in a Listings ByCategory mode of operation of the preferred embodiment of the presentinvention.

[0059]FIG. 20 shows schedule information displayed in a Listings ByChannel mode of operation of the preferred embodiment of the presentinvention.

[0060]FIG. 21 shows information displayed in response to a user'srequest for supplemental programming information.

[0061]FIG. 22 shows programming, ordering and video promotionalinformation displayed in a Pay-Per-View mode of operation of thepreferred embodiment of the present invention.

[0062]FIG. 23 shows an ordering submenu used in conjunction with themode of operation shown in FIG. 22.

[0063]FIG. 24 shows yet another ordering submenu used in conjunctionwith the mode of operation shown in FIG. 22.

[0064]FIG. 24A shows yet another ordering submenu used in conjunctionwith the mode of operation shown in FIG. 22.

[0065]FIG. 25 shows another grid listing of schedule informationdisplayed in an All Listings mode of operation of the present invention.

[0066]FIG. 26 shows a Premium Services submenu that appears in one modeof operation of the preferred embodiment of the present invention.

[0067]FIG. 27 shows a Messages menu that appears in one mode ofoperation of the preferred embodiment of the present invention.

[0068]FIG. 28 shows exemplary messages used in connection with the menuof FIG. 27.

[0069]FIG. 28A is an alternative message menu.

[0070]FIG. 29 shows billing information used in connection with the menuof FIG. 27.

[0071]FIG. 30 shows a Key Lock Access menu that appears during one modeof operation of the preferred embodiment of the present invention.

[0072]FIG. 31 shows a menu appearing in connection with an InteractiveTelevision mode of operation of the preferred embodiment of the presentinvention.

[0073]FIG. 32 shows information that appears in a Quote Watch menu inconnection with the Interactive Television mode of operation shown inFIG. 31.

[0074]FIG. 33 shows other information that appears in connection withthe Interactive Television mode of operation shown in FIG. 31.

[0075]FIG. 34 is a menu showing information that appears in a newsdisplay in the Interactive Television mode of operation of the preferredembodiment of the present invention.

[0076]FIG. 35 is a menu showing information that appears in a sportsdisplay in the Interactive Television mode of operation of the preferredembodiment of the present invention.

[0077]FIG. 36a-d is a flow chart showing the operation logic requiredfor implementation of a computer program for the electronic programguide.

[0078]FIG. 37 is a menu showing a Locator screen for locating channelnumbers and defining favorite channel lists.

[0079]FIG. 38 is an alternative menu that can be used in a MENU mode ofoperation of the electronic program guide.

[0080]FIGS. 38A and 38B show, respectively, an alternative main menuscreen and a listing-by-time screen accessible from the alternative mainmenu.

[0081]FIG. 39 is a Lockout menu that alternatively can be used forpermitting or prohibiting access to certain programs.

[0082]FIG. 40 is a Setup menu that can be used to set text location anda purchase code for premium and pay-per-view programming.

[0083]FIG. 40A shows an exemplary menu for inputting a lockout code.

[0084]FIGS. 40B through 40E show, respectively, exemplary menus forentering, confirming, clearing or changing a purchase code.

[0085]FIG. 41 is a Lockout Verify menu that is used in connection withthe Lockout menu of FIG. 39.

[0086]FIG. 42 is a flow chart showing the operation of the preferredembodiment of the textfit system of the invention herein.

[0087] FIGS. 43A-E illustrate one embodiment of a series of screens thatmay be used for ordering a product associated with a program displayedin the EPG.

[0088]FIG. 44 illustrates one embodiment of a screen that may bepresented to the user upon user activation of the ordering process whilethe cursor is highlighting a program listing for which a product orservice is available.

[0089]FIG. 45 illustrates the product or service ordering feature inconjunction with the flip mode of the system of the present invention.

[0090]FIG. 46 illustrates the product or service ordering feature inconjunction with program information for a music program.

[0091]FIG. 47 is a block diagram of an alternate embodiment of thesystem of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0092] System Configuration

[0093]FIG. 1 is a block diagram showing various components of theelectronic program schedule system generally designated as 10.Physically, these system components can be located in a user's set-topcable converter box or other signal reception or processing device, suchas a satellite receiver. Alternatively, the components can be mounted ina separate housing, or included as part of a television receiver, VCR,personal computer, or multimedia player; or reside as a distributedapplication in a broadband network architecture.

[0094] An input signal 11 is connected to a receiver 12, which receivesa transmitted data stream from a data provider. The data stream maycontain, for example, information about programs or services availablein a particular market, geographical or otherwise. The input signal 11can originate, for example, as part of a standard broadcast, cablecastor satellite transmission, or other form of data transmission, such asvideo dial tone. The data provider is a program information provider,the satellite uplink manager, a local cable operator, or a combinationof these sources, and the data stream contains program scheduleinformation for all television programs and other services available inthe operator's geographical market.

[0095] The data stream may be modulated and then transmitted on thecable line in any number of ways, including as part of a dedicatedchannel transmission operating at a frequency of, for example, 75 MHZ.Those of skill in the art will understand that numerous othertransmission schemes can be used to transmit the data stream, such asembedding it in the vertical blanking interval of a program broadcastsignal. As will be discussed in greater detail below, according to thepresent invention, the transmitted data stream may additionally containapplication software for implementing or updating the electronic programguide at the user site.

[0096] The transmitted program schedule data or application software isreceived by the receiver 12 on signal input line 11. The received signalis passed from the receiver to a data demodulator 13, such as a QPSKdemodulator or a GI Info-Cipher 1000R, which demodulates thetransmission and passes it to a buffer 15.

[0097] A microcontroller 16, such as a M68000EC, receives data passed tothe buffer 15. Bootstrap operating software, which may be used forcapturing electronic program guide application software updates, isstored in a read only memory (ROM) 17. The microcontroller 16 uses thereceived program schedule information to build a database by storing thedata in appropriately organized records in dynamic random access memory(DRAM) 18. The stored schedule information can be updated on a periodicbasis, such as hourly, daily or weekly, or at any time when changes inscheduling or other factors warrant an update. The system also includesa system clock 19.

[0098] Alternatively, the program schedule information could be suppliedin a ROM, disk or other non-volatile memory, or it could be downloadedto a storage disk or other data storage device. The invention herein isnot directed to the particular method of transmission or reception ofthe schedule information.

[0099] If the microcontroller 16 recognizes the received data asapplication software which controls the program schedule system, asopposed to program schedule information, it stores it in non-volatilememory, such as an electrically erasable programmable ROM (EEPROM) 20 orbattery-backed static RAM (SRAM). This configuration allows revised orreplacement versions of the application software to be downloadeddirectly from the software developer to the user site through the cableor other transmission system.

[0100] In the case where an EEPROM is utilized, revised or replacementversions of the application software downloaded from the developer arefirst stored in DRAM 18 by the microcontroller 16, under direction ofthe downloading operating software stored in the ROM 17. The storedapplication software can then be checked for accuracy by, for example, achecksum analysis or other verification routine.

[0101] After the accuracy of the application software has been verified,the microcontroller 16 initiates a routine to re-program the EEPROM 20,where the application software is permanently stored. Themicrocontroller 16 will issue proper control commands to a reprogramcircuit 21, which is adapted to supply the proper program voltage andlogic control signals 22 required to erase and write to the EEPROM. Itsupplies this program voltage, Vprog, as well as any other requiredcontrol signals, such as read or write enable, to the EEPROM 20 uponcommand from the microcontroller 16. After the EEPROM 20 has beenelectrically erased, the microcontroller 16 initiates transfer of thenew application software from the DRAM 18 to the EEPROM 20 for storing.

[0102] When a battery-backed SRAM is utilized as non-volatile memory,the microcontroller stores the revised or replacement version of theapplication software downloaded from the developer directly in the SRAM,again under direction of the downloading operating software stored inthe ROM. The stored application software can then be checked foraccuracy by, for example, a checksum analysis or other verificationroutine.

[0103] When power is first applied to the system 10, the bootstrapoperating software verifies that the program guide application softwareis resident in memory. If it is not resident, the bootstrap operatingsoftware waits for a download of the software. Once the applicationsoftware is resident, the microcontroller 16 executes the applicationprogram software from a dedicated portion of the DRAM 18. Alternatively,the application software can be executed directly from the non-volatilememory 20. Under control of the program guide application software, themicrocontroller 16 first verifies that the program schedule informationis resident in DRAM 18. If it is not resident, the microcontroller waitsfor a download of the program schedule information, as discussed above.Alternatively, if the application program is resident in memory, but thedatabase records containing the program schedule information data arenot yet available, the application software can be configured to carryout other tasks, such as allowing the user to carry out functions notrequiring the program schedule information data, as well as displayingan appropriate message indicating the database data is not yetavailable.

[0104] When the schedule system is operating, as discussed in greaterdetail hereinbelow, the microcontroller 16 takes the program scheduleinformation stored in the DRAM 18 and, in conjunction with otherdownloaded data types such as stored bit maps for the screenconfiguration and the graphic symbol or logo displays stored innon-volatile memory 20 or, alternatively, in DRAM 18, supplies it to avideo display generator (VDG) 23, which in the present embodiment may bea commercially available VGA-type graphics card, such as a Rocgen cardmanufactured by Roctec. The VDG includes a standard RGB video generator24, which takes the digital program schedule information sent by themicrocontroller 16 and converts it to an RGB format in accordance withthe bit map for the particular screen display then being presented tothe user on the television receiver 27. The configuration of each screenis shown and discussed in greater detail in the System Operation sectionbelow.

[0105] The VDG also includes a Video Overlay Device 25, which acceptsthe RGB video input, as well as an input from conventional televisiontuner 28, such as a conventional tuner manufactured by GeneralInstrument or a Jerrold DPBB tuner, which supplies a program signal instandard NTSC video format. The overlay device 25 converts and combinesthe RGB signal with the signal from the tuner 28, and produces acomposite NTSC output signal containing both the program signal and theprogram schedule information, as shown in FIG. 2. This composite videosignal is supplied to a modulator 26, shown in FIG. 1, which can be amodulator such as available from Radio Shack, and then to the televisionreceiver 27, which the user keeps tuned to the modulated channel, forexample, channel 3 or 4. The composite video signal can also be supplieddirectly to the television receiver 27 or other receiving device fromthe VDG through a video port 25A on the VDG.

[0106] The system components identified in connection with FIG. 1 canall be implemented in a preferred platform by, for example, an IBMpersonal computer equipped with a transmission link and a video graphicscard, such as those manufactured by Roctec. Other platforms, such as acable converter box equipped with a microprocessor and memory, or abroadband network also could be used. Examples of the particularcomponents are as follows: Microcontroller—Motorola part no. MC68331-16;ROM—Texas Instruments part no. TMS27PC512; DRAM—Texas Instruments partno. TM4256; EEPROM—Intel part no. 28F001BX-T. In any event, those ofskill in the art will appreciate that the particular details of thehardware components and data storage are a function of the particularimplementation of the system, and are not the subject of the presentinvention.

[0107] As discussed in detail below, the user may navigate through theprogram schedule system with a remote controller, such as that shown inFIG. 3, which operates on conventional principles of remote controltransmitter-receiver logic, such as by infrared or other signaling, orother suitable user interface. The remote controller 31 communicateswith the microcontroller 16 through the remote controller receiver 29,shown in FIG. 1, which can be a Silent Partner IR receiver and whichreceives signals transmitted by the remote controller 31 and suppliesthe microcontroller 16 with a corresponding digital signal indicatingthe key depressed by the user.

[0108] A remote controller suitable for the present invention, such asshown in FIG. 3, which can be a remote controller manufactured byUniversal Electronics or Presentation Electronics' Silent Partner, mayinclude a power switch 32, volume 33 and mute 34 controls, an ENTER key35, 0-9 digit keys 36, four direction arrow keys 37A and 37B, a MODE key38 and an information key 39 that is designated with a lower case “i.”The power 32, volume 33 and mute 34 keys operate in the same manner asconventional remote controllers typically used with present-daytelevision receivers. The numeric digit keys 36 also function in muchthe same manner as conventional remote controllers. A brief descriptionof the remaining keys follows.

[0109] The MODE key 38 takes the user through various layers of theelectronic program schedule system 10 and generally allows the user toreturn to a previous screen when he is in a submenu. The up/downdirection arrow keys 37A allow a user to navigate through the differentTV program channels when the program schedule system is in a FLIP orBROWSE mode, as will be fully described below, and also allow the userto navigate through highlighted bars displayed on the TV screen when ina MENU mode. The left/right direction arrow keys 37B allow the user tonavigate through selected time periods when the program schedule systemis in the BROWSE mode, as will also be described below. They furtherallow the user to navigate across subject-matter categories while in the“Categories” submenu of the MENU mode, as well as to navigate acrosstime periods when the program schedule system is in a pay-per-viewordering mode and, in general, navigate in left or right directions toselect various icons and other objects. The information, or “i,” key 39allows the user to view supplemental program and other informationduring the various modes of the program schedule system. The ENTER 35key fulfills and inputs a command once the user has made a selectionfrom the remote controller keys. The function and operation of thesekeys will be made more apparent in the detailed discussion of the FLIP,BROWSE and MENU modes below.

[0110] A second embodiment of the remote controller 40 is shown in FIG.4. This embodiment of the remote controller also includes a power key41, numeric digit keys 42, direction arrow keys 43A and 43B, informationkey 48, ENTER or SELECT or “OK” key 44, volume control 45, lockout key45A, mute keys 46 and help key 48A. It also includes pound sign and starkeys.

[0111] This embodiment of the remote controller further includes anumber of icon keys 47A and 47B, which correspond to different submenusor modes of the program schedule system. The icons 47A and 47B may alsobe displayed on the TV screen when the program schedule system isoperating. The icon keys essentially replace the MODE key 38 used in theembodiment of the remote controller shown in FIG. 3. Using these keys,the user can move from one mode to another simply by depressing the iconkey corresponding to the desired mode of operation of the programschedule system. In the embodiment of FIG. 4, the icons 47A and 47B areshown as graphic symbols situated directly above a correspondingcolor-coded key. Alternatively, the color-coded keys could be eliminatedand keys could be formed in the image of the icon itself.

[0112] The embodiment of the remote controller shown in FIG. 4 alsoincludes three color-coded viewer preference or favorite channel keys,48A, 48B and 48C that are situated directly above the icon keys. Each ofthese keys indicates to the program schedule system a distinctuser-created “Channel Preference” or “Favorite Channel” list, which is alisting of a specific subset of channels for a particular user, arrangedin the sequential order that the user wishes to view during operation ofthe program schedule system. The creation of the Channel Preference orFavorite Channel list is discussed in the following section. Thus, thesystem provides for at least three individual channel subsets for threeindividual users.

[0113] The remote controller of FIG. 4 also may be equipped with a“HELP” key 48A, which, when depressed, causes the microcontroller 16 toretrieve previously stored instruction messages from memory and causethem to be displayed on the television receiver 27. These messages offerhelp to the user in the form of instructions that guide the user throughthe operation of the various operating modes of the electronictelevision program guide. They may be text messages, or instructionalvideo images, or audio programs, depending on the storage capacity ofthe system, or any combination of these. Moreover, these help messagesmay be created so that they are context-sensitive, i.e., the messagesdisplayed depend entirely upon the precise point in the operation of theelectronic program guide that the user depresses the help key 48A. Forexample, information could be supplied for operation of the remotecontroller, for operating the FLIP or BROWSE mode (discussed below), orany other mode of operation of the guide, for impulse ordering, forsetting a lockout, etc. In order to accomplish this, each point ofoperation of the guide could be coded so that the microprocessor couldtrack the current operating point, for example, by temporarily storingthe code reflecting the present operating point as the user operated theguide. When the user pressed the help key 48A, the microcontroller 16would retrieve an appropriate set of messages based on the presentlystored operating point code. Additionally, the i key 39 could be used tocarry out the function of the help key.

[0114] Additionally, each of the functions of the remote controllers canalso be integrated into a keypad on the user's cable box or otherhardware.

[0115] System Operation

[0116] In operation, the electronic program schedule system of thepresent invention functions as follows.

[0117] FLIP Mode

[0118] When the user is viewing a particular program channel on thetelevision receiver, the program schedule system defaults to a FLIPmode, shown in FIG. 5. In this mode, a graphic overlay 51 containingprogramming information for the channel currently tuned on the tuner issuperimposed in overlaying relationship with a received program signal55 on the screen of the television receiver 27 whenever the viewerchanges the program channel, for example, by using the up/down directionarrows on the remote controller. The video overlay device 25, such asshown in FIG. 1, combines the computer-generated RGB video-graphicoverlay information with the NTSC-format program signal from the tuner28, and supplies an NTSC-format output signal, which includes theprogram signal from the tuner and the program schedule overlayinformation for viewing on the television receiver 27.

[0119] The programming information contained in the graphic overlay 51is supplied to the RGB video generator by the microcontroller. In FLIPmode, the microcontroller first searches the program schedule databasein, for example, the DRAM 18 to retrieve the programming information forthe currently tuned channel 52 corresponding to the current time; i.e.,the time at which the user just turned on the television receiver forviewing. The microcontroller 16 then supplies the current channel andprogram information to the RGB video generator 24 which converts thedigital data information to RGB format and supplies it to the videooverlay device 25.

[0120] In normal operation, the microcontroller 16 defaults todisplaying all channels offered by the cable company prioritized bynumeric order, which is determined by the broadcast channel position inthe radio spectrum or the marketing judgments of local cable operators.Using a “Channel Preference” submenu, or an alternative “Locator”screen, both of which are discussed below, the user can revise thecontent and/or sequential order of the channels presented to thetelevision receiver 27.

[0121] In general, if the user does not issue a change-channelinstruction, or other command, from the remote controller 40 within apredetermined time interval while in the FLIP mode, the microcontroller16 instructs the VDG 23 to remove the graphic overlay 51 from thetelevision receiver, thus presenting only a program signal 55 to thetelevision receiver 27 for viewing. The duration of the predeterminedtime interval is such that it allows the user sufficient time to readthe programming information contained in the overlay. The duration ofthe predetermined time interval during which the graphic 51 overlayappears is stored in a location in non-volatile memory 20 addressable bythe microcontroller 16. The user can change the duration of the timeinterval, by first entering a Viewer Preference mode, and then selectingan “overlay interval” entry. The microcontroller 16 then causes a userprompt to be displayed on the screen which, for example, asks the userto select an appropriate time period for displaying in the graphicoverlay on the screen. Using the numeric keys, the user can input anappropriate response, for example, a period between 5 and 60 seconds,and then depress ENTER. The new interval period is then read and storedby the microcontroller 16 in the overlay time interval location inmemory.

[0122] If the user issues a change-channel command from the remotecontroller 40 before or after the predetermined overlay period haselapsed, either by using the up/down direction arrows 43A, or byentering a desired channel number using the numeric keys 42 and thendepressing the ENTER key 44, the microcontroller 16 will cause the tuner28 to tune to the desired channel—either the channel immediatelypreceding or following the current channel when the up or down arrow 43Ais used or the specific channel entered on the numeric key pad by theuser—and will also search for and immediately cause to be displayed thecurrent program information for that channel. Thus, as the user flipsthrough the channels, the program schedule information for any selectedchannel automatically appears in the graphic overlay 51 while the actualprogram 55 appearing on the selected channel at the particular timeoccupies the remainder of the screen.

[0123] The system can also be configured to issue an error message, suchas an audible beep or displayed text indicating an invalid key stroke,if the user depresses either the left or right direction arrow keyswhile in the FLIP mode.

[0124] BROWSE Mode

[0125] To initiate the BROWSE mode, the user depresses the MODE switchonce while in the FLIP mode when using the first embodiment of theremote controller 31 shown in FIG. 3. Utilizing the second embodiment ofthe remote controller 40 shown in FIG. 4, the user would depress thebutton below the BROWSE icon 47A.

[0126] In the BROWSE mode, the user is provided with the ability to scanthrough program schedule information for any channel, including, but notlimited to, the channel being viewed, while at the same time continuingto view the TV program previously selected. As shown in FIG. 11, in thismode the graphic overlay information that appears in the FLIP mode isreplaced with programming information for the channel being browsed,which may or may not be the channel currently being viewed by the user.After the user issues the command from the remote controller 40 to enterthe BROWSE mode, a graphic overlay 111 is generated, as in the FLIPmode, with program schedule information for the currently tuned channel112 and a textual BROWSE indicator 113 to remind the user of thecurrently active mode, as shown in FIG. 11.

[0127] If the user depresses either the up or down direction arrow onthe remote controller 40 while in the BROWSE mode, program scheduleinformation for either the prior or next channel is displayed in thegraphic overlay portion 111 of the television receiver screen 27, whilethe tuner remains tuned to the channel program that appeared on thetelevision receiver at the time the user entered the BROWSE mode, asshown in FIG. 12, and continues to so appear. Each successive depressionof the up or down direction arrow key produces corresponding programschedule information for the selected channel. The graphic overlay mayalso include a small video window for showing the actual video signal ofa currently aired program or a clip of a future program corresponding tothe schedule information then appearing in the BROWSE overlay. In thisway, the user can simultaneously scan program schedule information forall channels while continuously viewing at least one selected program onthe television receiver. With the advent of sophisticated televisionreceivers, it may also be possible to simultaneously display multiplebroadcast programs on a single screen for viewing, or to split thescreen to show, for example, broadcast programs in combination withadvertisements. The BROWSE feature could be used in any of thesesituations.

[0128] If, at any time during scanning of the program scheduleinformation in the BROWSE mode, the user desires to tune the televisionreceiver 27 from the program channel currently being viewed to theprogram channel indicated in the schedule information in the graphicoverlay, he simply depresses the ENTER button 44 and the tuner 28 willbe tuned to that channel. If the user does not want to view anotherchannel and wishes to exit the BROWSE mode, thus removing the graphicoverlay 111 with the program schedule information, he must depress theMODE key twice in the first embodiment of the remote controller 31. Thefirst depression of the MODE key takes the user to the MENU mode,discussed below, and the second depression will take the user to theFLIP mode. Once in the FLIP mode, the graphic overlay will be removedafter the duration of the time-out interval has passed. In the secondembodiment of the remote controller shown in FIG. 4, the user togglesthe BROWSE icon key to deactivate the BROWSE mode.

[0129] When the user first enters the BROWSE mode and begins scanningchannels, the schedule information appearing in the overlay portion 111describes the programs currently playing on any particular channel. Inorder to view programming information for later or earlier times, theuser employs the left and right direction arrows 43B. As a consequence,the system will display future program schedule information for theparticular channel previously selected by the up and down directionarrows, whether it is the channel currently being viewed or any otheravailable channel. The schedule information presented includes the nameof the program and program start/stop time. The instant embodiment ofthe system, in order to conserve memory, will not allow the user to viewprogramming information for a time prior to the current time. The systemcould be easily modified to provide such information if adequate memoryis made available. It may be desirable, for example, to allow a user toview schedule information for an earlier time to find a particular showand then allow the user to command the microcontroller to find anddisplay future airing dates of the show, or the microcontroller couldsimply do this automatically.

[0130] When viewing program schedule information for a future time inthe BROWSE mode, the displayed time of airing 121 of the particular show122 is highlighted, as well as the channel number and service indicator123, as shown in FIG. 12A. Such highlighted information reminds the userthat he is viewing program schedule information for a future time. Also,when viewing program schedule information for a future time on anyparticular channel in the BROWSE mode, depression of the channel updirection arrow key on the remote controller 40 causes programmingschedule information for the next channel to appear, which correspondsin time to the future time that was being viewed before the up key wasdepressed by the user. The channel down direction arrow key 43Bfunctions identically in this mode.

[0131] If while viewing program schedule information for a future timein BROWSE mode the user depresses the ENTER key on the remotecontroller, the microcontroller 16 will instruct the VDG 23 to display aREMINDER overlay message 130 which, as shown in FIG. 13, is displayed asa second overlay 131 appearing above the BROWSE overlay 132. TheREMINDER message 130 queries the user as to whether the system shouldremind the user, at a predetermined time before the start of theselected program, that he or she would like to view the selectedprogram, as shown in FIG. 13. If the user responds affirmatively, themicrocontroller 16 stores reminder data consisting of at least thechannel, time and day of the selected program in a reminder buffer,which contains similar schedule information for all programs for whichthe user has set a reminder. At a pre-determined time before theselected program start time, for example, five minutes, themicrocontroller 16 will retrieve schedule information, including titleand service, based on the reminder data, and will instruct the VDG 23 todisplay a REMINDER overlay message 140 on the television receiver 27, asshown in FIG. 14, to remind the user that he or she previously set areminder to watch the selected program. The REMINDER message 140contains the channel, service and start time. It also displays thenumber of minutes before the time of airing of the particular show andupdates the display every minute until the time of airing. The REMINDERmessage 140 also displays a “TUNE” inquiry, which asks the user if shewould like to tune to the selected program. When the user sets multiplereminders, the reminder overlays are stacked, for example, in ascendingorder according to the time each reminder is scheduled to be displayed,and the next reminder message will appear on the television receiverafter the user takes appropriate action to remove the reminder messagethen being displayed. The REMINDER message (140 could also be adapted toallow the user to display or modify a list of all reminders previouslyset by the user. As with the overlay display time period in the FLIPmode, the user can modify the time period before a selected program thatthe REMINDER message appears by entering the Viewer Preference mode andrevising the time entry.

[0132] MENU Mode

[0133] Using the remote controller 31 shown in FIG. 3, the user canenter the MENU mode from the BROWSE mode or from the FLIP mode bytoggling the MODE button 38 once or twice, respectively. Using theremote controller 40 of FIG. 4, the user would simply depress the key47B corresponding to the MENU icon.

[0134] Referring to FIG. 6, in the MENU mode, the system displays aplurality of menu items and icons, which correspond to and allow userselection of distinct program schedule information display formats,local cable system message boards and other on-line informationservices. The MENU screen shown in FIG. 6 is a full-screen display. Inthe embodiment shown in FIG. 6, there are four vertically selectablehorizontal bars 61-64, which are accessed using the up and downdirection arrows 43A on the remote controller 31 or 40. At the extremeleft of each bar, an identifying icon 61A-64A is displayed, whichidentifies the information contained in that bar. In the embodiment ofFIG. 6, the “TV GUIDE” icon 61A in the first bar corresponds to programschedule information from TV Guide® magazine, the “NOW SHOWING” icon 62Ain the second bar 62 corresponds to pay-per-view and premium serviceevents, the “MSO Logo” icon 63A in the third bar 63 corresponds toCustomer Service or local cable company information messages, and thecircular icon 64A in the fourth bar 64 corresponds to other interactiveservices available to the user, or in the case of broadband networks,other venues, e.g., home shopping, banking or telephone use. As alsoshown in FIGS. 6 and 6A, each bar also contains a textual description ofits contents.

[0135] When the user first enters the MENU mode, the system defaults toselection of the program schedule bar. When a particular bar isselected, the textual description is removed and a plurality of icons oridentifying windows are displayed adjacent the identifying icon. In FIG.6, the program schedule bar 61 is selected. Using the up or downdirection arrow key on the remote controller 40, the user selects avertically adjacent bar. FIGS. 15-17 show, respectively, selection ofthe Pay-Per-View bar 62, the Customer Service or Messages bar 63 and theInteractive TV services bar 64.

[0136] An alternative MAIN MENU screen 215 is shown in FIG. 38. Certainselection screens accessible from the menu shown in FIG. 38 are shown inFIGS. 38A and 38B. It has three horizontally selectable bars: programschedule 205, Home Theater 206 and Customer Service 207. The MAIN MENUscreen 215 also contains an additional “Locator” identifier, which isdescribed below.

[0137] Once a particular bar in the MENU screen is selected, the usercan select a particular icon from the plurality of horizontallyselectable displayed icons 65A-65C by using the left or right directionarrow and the ENTER key on the remote controller 40. Each icon containsa graphical symbol appearing in a background window of a particularcolor. When a particular icon is selected, it is offset from itsbackground window and the color of the window changes. In FIG. 6, thegrid icon 65A immediately adjacent the “TV GUIDE” icon in the first bar61 is selected.

[0138] The function corresponding to the selectable entries in the MAINMENU screen will now be discussed with reference to FIG. 6. It will beappreciated by those of skill in the art that the same functionalityapplies in the categories shown in the MAIN MENU 215 shown in FIG. 38.

[0139] In the uppermost vertically selectable horizontal bar 61, thefirst grid icon 65A represents an “All Listings” mode in which theprogram schedule information is displayed in a grid listing, such asthat shown in FIG. 18. Alternatively, a single column grid-like displaycould be used, as that shown in FIG. 25. In this format, the verticaly-axis identifies the channel number and service while the horizontalx-axis identifies the time. The screen display of FIG. 18 also containsin the upper left-hand corner a mode identifier 180, in this case thenotation “All Listings,” to remind the user of the current operatingmode of the system. Directly underneath the mode display is ahighlighted display 181 of the channel that the user was watching beforeentering the MENU mode. In the upper right-hand corner, a logo icon 182appears in a window directly above a date/time identifier 183, whichalternatively displays the current date and time.

[0140] In the center of the screen display shown in FIG. 18 is agraphical Active Key Display (AKD) 184 which indicates to the user thosekeys on the remote controller that are active for that particular modeof the program guide display system. For example, in the screen displayof FIG. 18, the cursor can only move up, down or to the right. If theuser were to depress the left direction arrow key on the remotecontroller at that point, the system would not carry out any functionsince the cursor can not move to the left. Thus, the left arrow key isnot active so its image is not displayed on the AKD 184. Similarly,since the system will only respond to a depression of the up, down orright direction arrow keys and the ENTER key, they are the only keyimages displayed on the graphical AKD 184. The MODE key, though notdisplayed, is always active to change from one mode to another. When theuser first enters the All Listings guide, the time listing begins bydefault at the half-hour immediately preceding the current time unlessthe current time is on the hour or half-hour, in which case the displaybegins with the particular hour or half-hour, and the channel listingbegins at the last channel being viewed by the user before entering theMENU mode. For example, in FIG. 18, the current time is displayed as7:13 p.m., the time listing begins at 7:00 p.m. and the channel listingbegins with channel 4.

[0141] In the All Listings mode, a moveable highlighted cursor 185 isused to indicate the currently selected program to the user. The usermanipulates cursor movement using the direction arrow keys on the remotecontroller 40. Furthermore, the entire information display pages upwardif the cursor is placed at the bottom of the screen and the downdirection arrow is depressed, and similarly pages to the left if thecursor is at the extreme right side of the display and the rightdirection arrow is depressed. In this way, the user can navigate throughthe entire program schedule.

[0142] The folder icon 65B immediately to the right of the All Listingsicon in the top horizontal bar 61 of FIG. 6 identifies a “CategoryListing” mode in which program schedule information is displayed andcategorized by program content, as shown in FIG. 19. The particularlisting shown in FIG. 19 includes the categories of Movies, Sports, Newsand Children 190A-190D. The database record stored for each listingcontains a content-specific identifier so the microcontroller can searchthe database and categorize the information by content for purposes ofdisplaying it in the Category Listing mode. As shown in FIG. 19, theuser can manipulate the cursor left or right to highlight any one of thecategories which appear at the head of the listing. In FIG. 19, the“Movies” category 190A is selected. As shown, the user is given adisplay of all movies, prioritized by time and then alphabetically bytitle of show, beginning with the half-hour immediately preceding thecurrent time unless the current time is on the hour or half-hour, inwhich case the display begins with the particular hour or half-hour. Thescreen display shown in FIG. 19 also includes a textual description ofthe current operating mode of the program schedule system, as well asthe graphic AKD 184, similar to that used in connection with the AllListings mode.

[0143] As with the All Listings mode, if the user highlights a showwhich is currently airing, he can immediately tune to that show bydepressing the ENTER key on the remote controller 40. If the highlightedshow is one that will appear at future time, the user is again given theoption of setting a REMINDER message.

[0144] The triangular icon 65C at the far right of the TV GUIDE bar 61in the display of FIG. 6 identifies a “channel Listing” mode in whichthe program schedule information is categorized and displayed bychannel, as shown in FIG. 20. The screen display shown in FIG. 20 againincludes a textual mode identifier 201, the graphic AKD 184, and thewindow including the logo icon 182 and alternating time/date display183. At the head of the program listing is a list of several consecutivechannels 202A-202C beginning with the last channel viewed by the userbefore entering the Channel Listing mode. The channel in the middlewindow 202B is highlighted and is the channel for which scheduleinformation is displayed. The display identifies those programsappearing on the highlighted channel beginning with the half-hourimmediately preceding the current time unless the current time is on thehour or half-hour, in which case the display begins with the particularhour or half-hour. The user can display further future listings bymanipulating the cursor to the bottom of the screen and paging thedisplay, as previously described. The user can also change the selectedchannel by manipulating the left or right direction arrow keys on theremote controller 40. When the user issues a change-channel command inthis manner, the next consecutive channel will be displayed in thehighlighted window 202B in the channel string at the head of thedisplay, and schedule information for the newly selected channel will bedisplayed on the television receiver 27.

[0145] As with other modes, if a user wishes to tune to a highlightedprogram that is currently airing, he can do so by simply depressing theENTER key on the remote controller 40, and if the user wishes to view aprogram that airs at a future time, the user is again given the optionof setting a REMINDER message. In each of the FLIP, BROWSE and MENUmodes, a lower case “i” icon appears at a number of occasions inconnection with certain program listings, such as movies, such as the“i” 203 shown in FIG. 20. Any time this icon appears, the user can viewadditional programming information, generally comprising a textualdescription of program content and/or other information related to theprogram, such as the names of cast members and the like, by depressingthe “i” key 48 on the remote controller 40. An example of a display ofsuch additional information is shown in FIG. 21.

[0146] The second horizontal bar 62 appearing on the screen in the MAINMENU mode shown in FIG. 6 is the “Home Theater” Listing. It correspondsto Pay-Per-View events or services, specialized programming, and PremiumService programs. When this category is chosen by the user, thetelevision receiver displays information as shown in FIG. 15. The firsttheater-ticket icon 150 that appears in this Home Theater bar identifiesa format in which the Pay-Per-View events and premium services aredisplayed, as shown in FIG. 22. As with other modes, the user canmanipulate the cursor to highlight and select any particular show. Also,the user can obtain additional information about the Pay-Per-View eventor service by depressing the “i” key 48 on the remote controller 40. ThePay-Per-View menu screen display shown in FIG. 22 also includes a videodisplay section 220 in which short promotional clips of current andfuture events and services can be shown to the user while the user isviewing the Pay-Per-View scheduling information. The display of FIG. 22is bit mapped such that the advertising clips may be shown in the lowerleft quadrant of the screen. The clips may be shown randomly in thevideo display section 120 or, alternatively, the clip shown couldcorrespond to the particular selected entry on the list of events, andwould change automatically as the user navigated through the list.

[0147] When a user highlights a Pay-Per-View event or service bymanipulating the cursor to the desired event or service using thedirection arrow keys on the remote controller 40, he can order the eventor service by depressing the ENTER button on the remote controller, thuslinking schedule, promotional and ordering functions. If the userselects a particular Pay-Per-View event or service in this manner, theprogramming schedule system will next present to the user a Pay-Per-Viewordering screen such as that shown in FIG. 23. The display includes afigure representing the cost of the event or service. The display alsoasks the user to choose from among a plurality of scheduled airing times230A-230C, as well as whether the user would like to see a REMINDERmessage prior to the start of the Pay-Per-View event or service. Theuser responds to these inquiries by using the direction keys on theremote controller 40 to manipulate the cursor to the proper response andthen depressing the ENTER key. After the user has ordered a Pay-Per-Viewevent or service, the program schedule system will present the user withtwo ordering confirmation submenus, such as shown in FIGS. 24 and 24A.In either of these submenus, the user can confirm or cancel thePay-Per-View event or service.

[0148] If the user confirms the order, the microcontroller 16 stores thePay-Per-View ordering information in a location in memory. The orderinginformation can then be transmitted to the cable operator by themicrocontroller 16 either by phone line or on the cable line where thesystem has two-way communication or other such interactive capability.Alternatively, a computer at the cable operator location can interrogatethe memory where the microcontroller stored the Pay-Per-view orderinginformation. At the appropriate time, the cable operator supplies thePay-Per-View event or service and it is received by all users who haveordered the program.

[0149] The second icon 151 in the Pay-Per-View bar of FIG. 15 identifiesa specialized broadcast, cable or satellite programming service to whichthe user has access via the electronic program guide. In this mode, theelectronic program guide application software acts to connect the user,through an appropriate data transmission link, to the programmingservice, at which point the user interacts with the service.Alternatively, the electronic program guide provides the navigationsoftware, including the menus and scheduling information, for theparticular programming service. Such a service could be, for example,Your Choice TV (“YCTV”), a service offering reruns of highly ratedbroadcast and cable programs, in which case the icon may take a formsuitable to identify YCTV. The programming available on YCTV is thensupplied to the user via the programming guide system.

[0150] The last icon 152 appearing in the Pay-Per-View bar of FIG. 15identifies a display format which lists all Premium Services offered bythe cable operator, as shown in FIG. 26. In this mode, the user canselect for impulse ordering any one of the premium services bymanipulating the cursor using the direction arrow keys on the remotecontroller and depressing the ENTER key. Similar to Pay-Per-Viewordering, the system will present the user with a series of orderingdisplays and, if a service is ordered by the user, it will confirm theuser's request using another other submenu. If confirmed, themicrocontroller 16 will store the ordering information or transmit itdirectly to the cable operator. Once the order has been confirmed, themicrocontroller can immediately allow the user access to the orderedpremium service. In this manner, the user can order premium events orservices on demand.

[0151] If, during FLIP or BROWSE modes, a user views a channel orschedule information for a service not subscribed to by the user, themicrocontroller 16 causes an ordering submenu to appear instead ofdisplaying a program signal along with the graphic overlay, as shown inFIG. 9. This submenu indicates to the user that she does not currentlysubscribe to the selected service, and then asks the user if she wouldlike to order the service. If the user responds affirmatively, theprogram schedule system takes the user to the ordering submenu discussedabove. In this manner, the user can order premium events or services onimpulse. Many variations of this premium service ordering function arepossible. For example, upon depressing the ENTER key while the screenshown in FIG. 9 is displayed, the user may be presented with the optionto order the selected service or a package of programming services thatincludes the selected service. This feature may be implemented byreceiving and storing information identifying packages of programservices in the DRAM 18. When the user depresses the ENTER key while thescreen in FIG. 19 is displayed, microcontroller 16 may then beprogrammed to check DRAM 18 to determine if the particular premiumservice is part of any package currently being offered and present theuser with the option to purchase a programming package or the individualservice.

[0152] The third horizontal bar 63 in the MENU mode shown in FIG. 6 isthe “Messages” or “Customer Service” listing. As shown in FIG. 16, thefirst envelope icon 160 represents message information available fromthe cable operator. When the user selects the message icon, he ispresented with a screen display of currently available messages, asshown in FIG. 27. The display shown in FIG. 27 includes cable systemmessages 270 and billing information 271. If the user selects the cablesystem messages option 270, she is presented with a message pertainingto the local cable operator, such as that shown in FIG. 28. If the userselects the billing status option 271 shown in FIG. 27, she is presentedwith a display of current billing information, such as that shown inFIG. 29. This information may include a history of purchases charged tothe user, current balance information, pending orders, and, anindication of available credit, which can be an authorized debit limitpreviously arranged with the cable or other operator. Thus, a user couldspecify only a certain pre-set spending limit. Once the amount ofcharges from pay-per-view events reaches the limit, the microcontrollerwould not permit further ordering of events. An alternative messagesmenu is shown in FIG. 28A.

[0153] The next icon 161 in the Customer Service information bar 63 ofFIG. 16 identifies a “Viewer Preference” mode, which allows the user tocreate or revise a number of program schedule system operatingparameters. Once selected, this display presents the user with severalpreference options concerning certain operating parameters of theprogram schedule system, as well as the viewing of certain channelsand/or certain content-specific programming, for example, those shown inFIG. 7.

[0154] The first option shown in FIG. 7 is the “Parental” option 70,which can also be expressed as a “Key Lock Access” option. Once thisoption is initially selected by the user, the system displays a “KeyLock Access” submenu such as that shown in FIG. 30.

[0155] The Key Lock Access menu shown in FIG. 30 allows the user tocontrol access to individual channels and programs or events byrequiring the user to enter an access code “key,” consisting of auser-specified four digit code in the specific embodiment discussedherein, before ordering or viewing these preselected channels, programsor events. The menu display shown in FIG. 30 shows a series of subjectcategories that are entries in the vertical yaxis selectable by theuser. A particular subject category is chosen by using the up or downdirection arrow keys on the remote controller 40 to highlight thedesired entry. Once the user selects a particular subject category, theleft and right arrow keys are used to navigate within the chosencategory.

[0156] The first subject entry shown in FIG. 30 is the “ParentalGuidance” category 301. Once the user selects this category bymanipulating the cursor to highlight the entry, the cursor can be thenmoved horizontally to an active window 302 which displays and selectsone the five letter rating items in the category. The letter itemsrepresent ratings of program content as follows: “V” for violence, “N”for nudity, “L” for language, “AS” for adult situations and “PD” forparental discretion. Once the user selects a particular item, such as“L”, by moving to the active window 302 using the right direction arrowkey, depressing the ENTER key will indicate to the microcontroller 16that a key lock access has been selected for programs rated with a “L”rating for violent or explicit language. The system indicates activationof a key lock access by displaying a key icon directly below the “L”category display. Once a key lock access is set, it can be deactivatedby selecting the category letter and then depressing the ENTER key. Thisaction causes the key icon to disappear. The user can change the ratingcategory in the active window 302 by using the left or right directionarrow keys on the remote controller 40, images of which are displayed onthe screen adjacent the active window as a reminder to the user. In thismanner, the user can select other rating categories for setting a keylock access for any of the program content identifiers appearing in theParental Guidance category.

[0157] The key lock access code itself consists of a four digit code,which the user can enter and modify at any time. To do so, the userhighlights the fourth vertically selectable entry “Change Key LockAccess Code,” 304 by manipulating the cursor to highlight it using thedirection arrow keys on the remote controller. Once highlighted, theuser enters a new four digit code or revises the then existing code anddepresses the ENTER key. The microcontroller 16 then identifies the newfour digit key lock access code and stores it in memory. The user canclear the key lock access code, as well as all other previouslyactivated keys, by moving to the last entry in FIG. 30, “Clear Key LockAccess Code and All Keys,” 305 which highlights the “OK” window, andthen depressing the ENTER key. This action clears and deactivates allpreviously set keys, as well as the key lock access code.

[0158] The schedule information database record for each programcontains a field that corresponds to the program content identifiers inthe Parental Guidance category. During operation, the microcontrollerchecks this field in response to a user command to tune to or order aprogram, or to display its corresponding schedule information beforecarrying out the tuning, ordering or displaying function. If theparental guide identifier in the program schedule information databaserecord matches any one of the activated parental guidance identifiersshown in FIG. 30, the user will be prompted to enter the four digit keylock access code before the system takes any further action. If theentered code matches the key lock access code previously entered andstored by the user as described above, the system will carry out theuser request to tune to the program, to order it, or to display itscorresponding schedule information. If the code is not recognized by thesystem, no further action will be taken and the user's request will bedenied.

[0159] By manipulating the cursor using the direction arrow keys tohighlight the second entry, “MPAA ratings,” 308 the user can also set akey lock access for programs based on their MPAA rating code, as alsoshown in FIG. 30.

[0160] As with the Parental Guidance category, once the MPAA ratingcategory has been selected, the user can move horizontally within thecategory to the active window 306 to select one the five rating codes,i.e., “G” for general audiences, “PG” for parental guidance, “PG13” forsuggested parental guidance, no one under 13 admitted without an adult,“R” for restricted and “X” for x-rated. As with the Parental Guidancecategory, by selecting a particular rating—by using the left or rightdirection arrow keys until the particular rating code appears in theactive window—and then depressing the ENTER key, the user sets a keylock access for the rating, in which case a-key icon appears below therating code. And, as with the Parental Guidance category, once a keylock access is set, the system will prompt the user to enter the fourdigit key lock access code anytime a request is made to tune to, orderor display schedule information for a particular program having a ratingcode which matches a rating code for which key lock access has beenactivated.

[0161] The Key Lock Access mode also includes a subject category 303 forcontrolling access to channels, which may be entitled, for example,“Channel Block” or “Channel Lock.” As with the Parental Guidance 301 andMPAA 308 categories, the user navigates to the Channel Block category303 by manipulating the cursor using the direction arrow keys on theremote controller and depressing the ENTER key. Once the Channel Blockcategory 303 has been entered, the user can move horizontally to anactive window 307, which in FIG. 30 indicates channel 2. Once the userhighlights this window by manipulating the cursor using the directionarrow keys on the remote controller 40, a key lock access can be set forthe channel appearing in the active window. This is done, as with theother subject categories in the Key Lock Access mode, by depressing theENTER key, which again causes a key icon to appear below the channelnumber in the active window. The user can move to the prior channel orto the next channel in sequence by depressing either the left or rightdirection arrow key on the remote controller 40. In this manner, theuser can activate a key lock access for any available channel.

[0162] As with the Parental Guidance 301 and MPAA 308 categories, once akey lock access is set for a particular channel, the system will promptthe user to input the key lock access code prior to carrying out aninstruction to tune to or order that channel. If the input key lockaccess code matches the previously stored access code, the user'sinstruction is carried out. Otherwise, the user's instruction isignored. Thus, the user can control access to the audio and videoprogram content of any available channel. In this instance, themicrocontroller 16 will not allow audio or video program signals to passto the VDG, but it will allow schedule information to appear for thechannel.

[0163] An alternative method for effecting lockout of programs isaccomplished using a “Lockout” screen, as shown in FIG. 39. In additionto limiting access to programs based on the Parental Guidance, MPAA andchannel criteria, as discussed above, access may be limited on the basisof program title. FIG. 39 shows an alternative Lockout screen 250 thatcan be used to permit or limit access to programs based on programtitle, in addition to the aforementioned criteria. Other parameters alsomay be included, such as time of day, day of week, credit limit, andcontent category (e.g., talk shows).

[0164] To enter the Lockout screen 250 shown in FIG. 39, the user mustenter a multi-digit lockout code using the numeric digit keys 42 and theenter key 44 on the remote controller 40. The lockout code is setinitially when the system is first used or installed. To set a lockoutcode in the first instance, the user accesses a Setup screen 260, suchas that shown in FIG. 40. The Setup screen 260 will automatically appearthe first time the electronic program guide is installed andinitialized. For access during normal operation of the electronicprogram guide, a suitable access path to the Setup screen 260 may beprovided, such as from an appropriate icon in the MAIN MENU 215.

[0165] In the Setup screen 260 of FIG. 40, the user can navigate to theLockout Code category 265 and set a new lockout code using theappropriate navigation and selection keys on the remote controller 40. Asuitable menu for inputting the lockout code is shown in FIG. 40A. Onceenabled, the lockout code must be used to set or modify locks, to view apreviously locked program, or to clear or change the lockout code. Thememory location of the stored lockout code also should be remotelyaccessible, such as by the local cable company, in case the user forgetsthe lockout code and it must be erased.

[0166] Once the lockout code is entered and the Lockout screen 250 ofFIG. 39 is displayed, navigation within the screen is controlled by thedirection keys 43A and 43B on the remote controller 40. Using the up anddown direction keys 43A to move the selection cursor, either the MovieRating 251, Parental Guidance 252, Channel 253, Locked Program 254 orLockout Code 255 category can be selected. The left and right directionkeys 43B are then used to navigate inside the selected category.

[0167] Clearing a previously set lockout code is accomplished by movingthe selection cursor to the “Clear” entry 256 in the Lockout Codecategory 255 and depressing the enter key 44 on the remote controller40. This causes the microcontroller to clear the lockout code stored inmemory, as well as all locks previously set by the user. To change thecurrent lockout code, the user navigates to the “Change” entry 257 inthe Lockout Code category 255 and depresses the enter key 44 on theremote controller 40. The user is then prompted to enter a new lockoutcode, which is subsequently stored in memory by the microcontroller.

[0168] To set a lock in either the Movie Rating 251 or Parental Guidance252 category, the user navigates to the selected entry in FIG. 39 bymanipulating the selection cursor using the direction keys 43A and 43Bon the remote controller 40, and then depresses a lockout key on theremote controller, such as the padlock key 45A shown in FIG. 4. Themicrocontroller will appropriately modify the display to indicate that alock has been set, for example, by changing the color of the text or thebackground in the selected entry window, or by displaying an appropriateicon next to the text in the selected entry window. In FIG. 39, apadlock icon 258 appears in the window of the “PG” entry in the MovieRating category 251. Toggling the lockout key while the selection cursoris positioned on a selected entry will alternately enable and disablethe lockout function for that entry.

[0169] Similarly, to set a lock for a particular channel, the userselects the channel using the selection cursor and then depresses thelockout key. In FIG. 39, the channel “4 KCNC” entry in the Channelcategory 253 has been locked, which is indicated by the inverse videoand padlock icon appearing in the window.

[0170] Program locks also may be set by title, which can be effected inseveral ways. For example, when the above-described FLIP or BROWSE modeof the electronic program guide is enabled, thereby causing the title ofa program to be displayed along with other program schedule informationin a window superimposed on the actual program signal then beingreceived, the user can limit access to the program corresponding to thedisplayed program information by depressing the lockout key 45A on theremote controller 40. The user also may limit access to the currentlytuned program by depressing the lockout key 45A on the remote controller40 while viewing the program, regardless whether the FLIP or BROWSEmodes are enabled. In this instance, the microcontroller first removesthe program signal from the display and then accesses the scheduleinformation database record for the program then appearing and sets anappropriate flag to indicate the program has been locked. Also, whenviewing program schedule information in the grid or category listings,as discussed above and shown, for example, in FIGS. 18-20, the user alsocan tag a program for lockout by highlighting it with the selectioncursor and then depressing the lockout key 45A on the remote controller40.

[0171] In each of these instances, the microcontroller then stores theprogram title in a lockout title list stored in memory along with anyother titles that previously have been locked out by the user.Individual items in the lockout title list are displayed in alphabeticalorder in the “Locked Program” window 259 shown in FIG. 39, and the usermay scroll through the list by positioning the selection cursor on theLocked Program window 259 using the up and down direction keys 43A onthe remote controller in FIG. 40 and then using the left and rightdirection keys 43B to scroll through the list one item at a time. Inorder to save memory space, alternatively, the microcontroller may beprogrammed to set a flag or otherwise mark the particular databaserecord containing the program schedule information for the program thatis to be locked out, and to thereafter access the database to retrievethe title information when it is to be displayed, such as when theviewer is reviewing the lockout title list in the Locked Program window259.

[0172] Once an individual title has been locked out, the microcontrollercan be programmed optionally to display an appropriate lockout icon,such as a padlock, whenever program schedule information for the lockedprogram is to be displayed, such as in the window overlay of the FLIP orBROWSE mode, or in the various grid and category displays available inthe MAIN MENU displays. The system also may display an appropriate textmessage if someone tries to access the program signal of apreviously-locked program. Of course, once a program is locked, in allinstances the microcontroller prevents access to the actual programsignal (including both the audio and video portions of the programsignal) until an appropriate code is entered or the lockout is removed.

[0173] Several methods can be used to block programs at their time ofairing. For example, in the case of the Movie Rating, Parental Guidanceand Channel categories, the schedule information database record foreach program is provided with a field that corresponds to the rating,program content identifier or channel appearing, respectively, in theMovie Rating 251, Parental Guidance 256 and Channel 253 category of theLockout screen 250 shown in FIG. 39.

[0174] During operation, the microcontroller checks the appropriatefield in the database record in response to a user command to tune to ororder a program before carrying out the tuning or ordering function.Additionally, the lockout code also may be used to restrict access toprogram schedule information. In this instance, the microcontroller alsowould check the appropriate field in the schedule information databaserecord before displaying schedule information for a program.

[0175] If the movie rating, parental guidance or channel identifier inthe program schedule information database record matches any one of thelocked-out entries indicated in the Lockout screen 250, a Lockout Verifyscreen 300 is displayed in overlaying relationship with the video signalthen being displayed on the television receiver, as shown in FIG. 41.The user will be prompted to enter the previously set lockout codebefore the system takes any further action. As an added securitymeasure, asterisks will be displayed as the user enters the lockoutcode. If the entered code matches the lockout code previously enteredand stored by the user as described above, the system will carry out theuser request to tune to or order the program, or to display itscorresponding schedule information. If the code is not recognized by thesystem, no further action will be taken and the user's request will bedenied. In this case, the Lockout Verify screen 300 will remaindisplayed on the television receiver waiting for a correct code to beentered. If no action is taken by the user, the Lockout Verify screen300 will be removed after a predetermined time-out period, such as oneor two minutes.

[0176] Similarly, in the case of lockout by title, the microcontrolleralso could check the title field in the schedule information databaserecord and compare it with the list of program titles for which the userpreviously set a lock. If, as described above, the microcontroller doesnot maintain a list of the actual titles of programs locked by title, asuitable identifier can be set in a field in the database record toindicate that a program has been locked by title when the user firstsets the lock, and, thereafter, the microcontroller could check thatfield in response to a user request to tune to or order a program, ordisplay schedule information.

[0177] An alternative method for effecting lockout involves the use of aportion of the real-time program signal being received by the televisionreceiver. With this method, codes corresponding to a program's rating,parental guidance category, title or channel are inserted into andtransmitted along with the program signal, such as in the vertical orhorizontal blanking intervals, or on raster scan lines that are notvisible on the television receiver. When the program signal is received,these codes are stripped from the program signal and stored in memory.Methods and apparatus for the insertion transmission and reception ofdigital codes carried on a program signal are known in the art.

[0178] After the transmitted codes have been separated from the programsignal and stored in memory, the microcontroller can compare them withthe lockout criteria set by the user in the Lockout screen and takeappropriate action, as described above.

[0179] The Setup screen 260 shown in FIG. 40 also contains a PurchaseCode category 270, which allows the user to set a numeric purchase codethat must be entered before any premium channels or pay-per-viewprograms can be ordered. The Setup screen 260 shown in FIG. 40 includesentries for setting a new purchase code and for clearing or changing apreviously set password. Appropriate menus for setting, confirming,clearing or changing the purchase code are shown in FIGS. 40B through40E. Once a user sets a purchase code, the microcontroller thereafterwill display a Purchase Code Verify screen in response to a user requestto tune to or order a premium services channel or pay-per-view program.The Purchase Code Verify screen works in a manner similar to the LockoutVerify screen 300 in that the user is prompted to enter the previouslyset purchase code password before the microcontroller will tune to ororder the requested program. If the correct purchase code is notentered, the microcontroller will take no further action and thePurchase Code Verify screen will remain displayed waiting for input ofthe correct code. If no action is taken within a predetermined time-outperiod, the Purchase Code Verify screen will be removed.

[0180] The next option shown in FIG. 7 is the Channel Preference or“Favorite Channel” list option 71. By highlighting this icon anddepressing the ENTER key on the remote controller 40, the user ispresented with a submenu on the screen such as that shown in FIG. 8.

[0181] In normal operation, the program guide system presents channelsto the user in numerical order in response to an up or downchange-channel command issued by the user using one of the directionarrow keys on the remote controller. The channel number presentationsequence includes all channels offered by the cable company in the orderof which they are modulated onto the channel by the operator.

[0182] The program guide system also provides the capability ofselecting from among several user-defined channel presentationsequences, which are activated using one of the three “check mark” iconkeys 48A, 48B or 48C on the remote controller 40 shown in FIG. 4. Eachof these keys represents a preferred particular list of channels which aparticular user selects and which the microcontroller stores in memoryas a “Channel Preference” list, as discussed in detail below. Toactivate one of these preferred channel lists, the user depresses thecorresponding check-mark icon key, in which case the microcontroller maydisplay the chosen icon on the screen in the graphic overlays and fullscreen displays to remind the user that a particular channel preferencelist is being used by the system. Once a preference list is activated,the system will limit the tuning of the television receiver and thedisplay of schedule information only to those channels that aredesignated in the activated viewer preference list.

[0183] To revise the content and/or sequential order of the channels inthe Channel Preference list, the user enters the MENU mode of theprogramming guide system. To enter the MENU mode from the FLIP mode, theuser twice depresses the MODE key 38 when using the remote controller 31of FIG. 3. To enter the MENU mode when using the alternative embodimentof the remote controller 40 of FIG. 4, the user simply depresses theMENU icon key 47B.

[0184] When first entered, the MENU mode has a screen display such asshown in FIG. 6. To select the submenu for editing the ChannelPreference list, the user first selects the third horizontal bar 63,which can be titled, for example, “Messages” or “Customer Service,” bymanipulating the cursor using the down direction arrow key, as shown inFIG. 7. The screen of FIG. 6A is thereby displayed. The user thenselects the second icon 161 appearing in that bar, indicated with acheck mark, which corresponds to a “Viewer Preference” mode, byhighlighting the icon using the direction arrow keys and againdepressing the ENTER key. This action will cause the microcontroller 16to display a Viewer Preference submenu such as that shown in FIG. 7. Byselecting the Channel Preference or “Favorite Channel” entry 71, theuser enters the Channel Preference submenu, shown in FIG. 8. If the userhas not already done so, he would then depress the particular check-markicon key on the remote controller 40 of FIG.4 to create or revise theparticular channel preference list.

[0185] In the Channel Preference menu shown in FIG. 8, a list 80 of allchannels available on the particular cable system is displayed on theleft side of the television receiver screen, labeled “Choices” in FIG.8, and the viewer's preferred list 81, designated “Selected” in FIG. 8,is displayed on the right side. If a particular code, such as an END or“1” symbol appears in the first (uppermost) position 82 of the viewerpreference list 81, the system displays information for all channels innumerical order in all modes of operation. This is the default mode ofthe system.

[0186] By selecting channels in sequence from the available list 80 andplacing them in the desired order in the preference list 81, the usercan select a subset of channels and/or rearrange the default sequence inresponse to a channel up or channel down command from the user. This isaccomplished by highlighting a channel in the available list 80 usingthe up and down direction arrow keys on the remote controller 40 anddepressing the ENTER key 44, which stores the entry temporarily in abuffer.

[0187] The microcontroller 16 stores a list of all channels previouslyentered in the viewer preference list 81. As a particular channel ishighlighted by the user when navigating through the available channellist 80 displayed on the left side of the television screen, a window 84appears adjacent to the particular channel highlighted by the user. Ifthe particular channel already appears in the viewer preference list 81,the system displays a “DELETE” message in the window 84 as a reminderthat the channel was previously selected from the available channel list80 and can only be deleted from the list 81, which is accomplished bydepressing the ENTER key 44. If the particular highlighted channel inthe list 80 was not previously selected, the system displays a “SELECT”message in the window 84 as a reminder that the particular channel willbe selected for addition to the viewer preference list 81 if the userdepresses the ENTER key 44. The microcontroller 16 inserts a selectedchannel at the bottom of the list 81. In this manner, the user canselect or delete channels from the viewer preference list in any desiredorder.

[0188] The available channel list 80 may also be provided withcategorical entries 83, such as movies, news, sports or children'sshows. The user may also highlight any of these entries and put theminto the viewer preference list 81. If the user does include a categoryin his viewer preference list 81, when the user issues channel up ordown commands, the system will display, in sequence, first the user'sselected preferred channels in numerical order and then all channelshaving a program whose content corresponds to the selected category orcategories at the time.

[0189] Once the user has revised the channel preference list 81 in thedescribed manner, the microcontroller 16 will follow the storeduser-specified channel sequence in response to a change-channel commandmade by the user employing one of the direction arrow keys. To activatethe viewer preference list, the user depresses one of the threecheckmark icon keys 48A, 48B or 48C on the top of the remote controllershown in FIG. _4. The viewer preference list can be used to selectivelylimit tuning of the television receiver or display of scheduleinformation in any of the operating modes of the electronic programguide. In the present embodiment, once a preference list is activated,the system will limit the tuning of the television receiver and thedisplay of schedule information in the FLIP, and BROWSE modes, as wellas in the grid category and channel listings in the MENU mode, only tothose channels designated in the activated viewer preference list. Thetuner can not be tuned to, and no corresponding schedule information canbe displayed for, any channel not entered in the viewer preference listwhen it is activated. In this regard, it should be noted that setting akey lock access in the Parental Guidance 301, MPAA 308 or Channel Block303 categories produces a different result than when using other displaycriteria, such as the Channel Preference List of preferred channelsdiscussed above. Thus, while a key lock access will prevent audio andvideo program information, but not schedule information, from beingdisplayed or ordered absent entry of an authorization code, if aparticular channel is included in the Channel Preference list and alsohas a key lock access activated in the Channel Block category 303 of theKey Lock Access mode, that channel or its corresponding scheduleinformation will not be displayed at any time.

[0190] To deactivate a previously selected viewer preference list, theuser toggles the appropriate check-mark icon key on the remotecontroller 40 of FIG. 4. Once deactivated, the system defaults todisplaying and tuning all available channels, as well as displayingschedule information for all available channels.

[0191] Alternatively, the viewer preference list 81, if activated, canbe used to control tuning and display of schedule information only inselected modes, such as only in the FLIP mode, thus allowing the user totune and view corresponding schedule information only for those channelsentered in the preference list 81 in the FLIP mode, while viewing allchannels and corresponding schedule information in all other modes.

[0192] In this latter configuration, as well as in the instance where nochannel preference list is activated and the system is in default mode,if a channel appears in the viewer preference list 81 that correspondsto a service not subscribed to by the user, the microcontroller 16causes an ordering submenu to appear instead of displaying a programsignal along with the graphic overlay, as shown in FIG. 9. This submenuindicates to the user that he does not currently subscribe to theselected service, and then asks the user if he would like to order theservice. If the user responds affirmatively, the program schedule systemtakes the user to another ordering submenu to confirm the user'srequest, as with impulse ordering.

[0193] The program guide also may be configured with a Locator screen201, as shown in FIG. 37, which aids the viewer in channel selection anddefinition of a favorite channel list. The Locator screen 201 displaysall available channel numbers grouped according to the source of theprogram information appearing on any particular channel at anyparticular time, e.g., broadcast, cablecast, pay-per-view, near video ondemand, satellite, or other source of program material. Thus, theLocator screen 101 can be used to locate any particular channel orservice because the groupings provide a quick and efficient method forscrolling through the list of available channels. The channel numbersalso may be grouped according to other criteria, such as programcategory, program content, program rating or other content-basedstandard, time of availability, numerical order, or other logicalgrouping.

[0194] In the example shown in FIG. 37, the user navigates within theLocator screen 201 using the direction keys 43A and 43B on the remotecontroller 40. The right and left direction keys 43B move the selectioncursor within the category rows, while the up and down direction keys43A are used to select a particular category. From the Locator screen201, any particular channel can be selected for viewing by positioningthe selection cursor on the desired channel and depressing either theenter key 44 or an optional tune key (not shown) on the remotecontroller 40.

[0195] In addition to aiding in channel selection, the Locator screen201 also provides the user with the ability to conveniently definefavorite channel lists. To do so, the user first moves the selectioncursor to the desired channel by using the direction keys 43A and 43B ornumeric digit keys 42 on the remote controller 40, and then depresses afavorite channel key 46A provided on the remote controller 40, whichcauses the display to change in some manner or characteristic as anindication that the channel has been selected as a favorite channel,such as by changing the color of the channel identification text or thetext background, by displaying an appropriate icon or by some otherappropriate identification scheme. In the remote controller 40 shown inFIG. 4, the pound key “#” can function as the favorite channel key.

[0196] Also, if multiple favorite channel lists are being used, the userwould depress the appropriate favorite channel key on the remotecontroller to select a particular list before depressing the favoritechannel key. For example, as discussed above, the remote controller 40shown in FIG. 4, has three color-coded check-mark favorite channel keys48A, 48B and 48C, which provide for at least three individual favoritechannel lists for three individual users. Different identificationcharacteristics could be displayed on the Locator screen 201 to indicatethat a particular favorite channel list is selected. For example, theicon or image used to enable a favorite channel list on the remotecontroller, such as the check mark key 48A used on the remote controller40 shown in FIG. 4, could be displayed on the Locator screen 201, aswell as other screens of the program guide, when a favorite channel listis enabled. Alternatively, the color of the displayed text or backgroundcould be changed to match the color of the selected favorite channelkey.

[0197] The Locator screen 201 may be accessed via several paths. Forexample, it may be included as a virtual channel that is convenientlypositioned in the channel-tuning sequence, such as between the highestand lowest available channel numbers—for example, a virtual channel 0.To the user, such a virtual channel appears to be a conventionalchannel. However, it requires no additional bandwidth as a carrier. Forexample, it can be digitally produced at the subscriber station orincluded in an appropriate blanking interval in existing bandwidthfrequencies. In this manner, the virtual channel is accessible either byentering the corresponding channel number using the numeric digit keys42 on the remote controller, or by using the up and down direction keys43A to wrap around from the highest to the lowest channel number, orvice versa. As shown in FIG. 38, it also may be desirable to provide asuitable identifier, such as an icon or text message 210, in the MAINMENU display 215, from which the user could access the Locator screen201 simply by highlighting the identifier 210 with the selection cursorand depressing the enter key 44 on the remote controller 40.Alternatively, the remote controller may be provided with a keycorresponding to the Locator screen 201 which would cause themicrocontroller to display the Locator screen 201 when the userdepressed it.

[0198] In addition to Channel Preference or Favorite Channel keys, theremote controller 40 can also be supplied with a number ofuser-activated category preference icon keys, e.g., movies, sports, orchildren's programming. The system can be adapted to present to the useronly those programs meeting particular preference category when it isactivated by the user. As with the Channel Preference icons, themicrocontroller may display the icon corresponding to the activatedpreference category to remind the user of the currently activated modeof system operation.

[0199] The question mark icon 162 at the far right of the thirdhorizontal bar in the menu of FIG. 16 identifies a program guide system“Help” mode in which information explaining the operation of the systemis displayed for the user. Again, by manipulating the cursor using theappropriate keys on the remote controller, the user can select thismode. Once selected, the next submenu appearing in the Help mode asksthe user to identify the particular portion of the system about whichthe user would like to view Help information.

[0200] The icons appearing in the last horizontal bar of the MENU modeidentify certain interactive and/or other types of information serviceswhich the programming system, acting as a gateway, makes available tothe user as shown in FIG. 17. By manipulating the cursor, the user canselect any one of the identified services, as shown in FIGS. 31-35.

[0201] For example, if the user initially selects the “X*PRESS” iconappearing in the last horizontal bar, he is presented with a submenusuch as that shown in FIG. 31. Using the direction arrow and enter keyson the remote controller, the user selects one of the three entriesappearing in the display of FIG. 31. Once a particular entry isselected, the electronic program guide connects the user to the selectedservice and passes control to the particular service applicationsoftware, as shown in FIGS. 32-35.

[0202] Alternatively, the remote controller 40 can be supplied with aplurality of content-specific keys corresponding to a plurality ofcontent-specific categories of programming, e.g., a Sports key, Newskey, Movie key, etc. When the user depresses a content-specific key, acontent-specific mode is initiated. In FIG. 4, the remote controller isequipped with a Sports key 49. If the user depresses the Sports key 49,the microcontroller will limit the display of programs and/or programschedule information to those that are sports-related. Themicrocontroller will block all other programming or schedule informationfrom appearing on the television receiver. The microcontroller can beadapted to distinguish programs and schedule information that aresports-related by examining an appropriate code associated with theprogram or schedule information.

[0203] As discussed above, coding can be accomplished using any numberof methods, such as by including an appropriate code in the verticalblanking interval of the program signal, or in an appropriate memorylocation in the database record of the program schedule information, orif the schedule information is being received on a broadband network, byincluding it in an appropriate blanking interval. The user activates acontent-specific mode by depressing the appropriate content-specific keyin any mode of operation of the electronic programming guide, includingthe aforedescribed FLIP, BROWSE or MAIN MENU modes, as well as when noschedule information is being displayed and only a program signal isvisible on the television receiver. Once a content-specific mode isrequested by the user, the microcontroller immediately and directlyenables the content-specific programming criteria, and maintains it forall operating modes of the guide until disabled, which can beaccomplished, for example, by toggling the Sports key 49.

[0204] Instead of a dedicated content-specific key, such as Sports key49, the system may be configured with a single, generic content-specifickey, which, when activated, would cause the microcontroller to display acontent-specific menu containing a list of all content-specificcategories available to the user. The user then could highlight aparticular category by manipulating the selection cursor using thedirection arrow keys on the remote controller and select it bydepressing the ENTER or OK key 44. As an alternative to using acontent-specific key on the remote controller, access to thecontent-specific menu can be effected by providing an appropriateidentifier in another menu screen of the electronic guide, such as inthe LOCATOR, SETUP or MAIN MENU screens.

[0205] In addition to blocking all non-selected content-specificprogramming when a particular content-specific category has beenselected, the microcontroller can be programmed to enable alladded-value programming or services that are specially related to theselected content-specific category. For example, if the user activates aSports content-specific mode, the microcontroller, in addition toallowing only sports programming or schedule information related tosports programming to be displayed, will proactively seek out and enableall sports related added-value services, such as related trivia or videogames, up-to-date scores while a game is in progress, team schedules,replays of prior games of the selected teams or players, ticket orsouvenir purchasing, etc. Thus, the information available from theprogramming or service can be integrated into the environment of theelectronic program guide. Rather than simply passing control to anotherservice as described above, in this manner the electronic program guidewould function as a system integrator or interface to combine theavailable added-value information into a package within the electronicguide environment, thus essentially creating a series of modularelectronic program applications corresponding to a variety of availablecontent-specific categories.

[0206] The Setup screen shown in FIG. 40 also includes a Text Locationcategory 275, which contains the textual entries “Bottom of Screen” and“Top of Screen.” By navigating to the Text Location category 275 usingthe up and down direction keys 43A on the remote controller 40, and toeither the “Top” or “Bottom” entries in that category using the left andright direction keys 43B on the remote controller, and then depressingthe enter or select key 44, the user can control the position of theoverlay windows used to display information in various operating modesof the electronic program guide. The Setup screen of FIG. 40 providesthe user with two positional choices: the top or bottom of the screen.Depending on the modes of operation of the program guide, it may bedesirable to provide the user with more positional choices in viewingarea of the television receiver, or to provide the user with the abilityto choose a different position for information displayed differentoperating modes.

[0207] One of the novel features of the disclosed invention is thetextfit system. The preferred embodiment of the text fit system includesan interactive computer program used to edit the program listings databefore it is transmitted to the user and stored in memory. Theinteractive system operates as follows: unedited (or partially edited)program listings information is loaded into data a processor. The dataincludes program titles, program schedule times, duration, category, aswell as additional descriptive information dependent on the type ofprogram. For example, for movies the data includes the MPAA rating, yearof the movie, whether it is in black and white, and a list of starringactors and actresses.

[0208] The data processor extracts only the program title data whichincludes television program titles as well as movie titles, sportingevents and titles for other special events. Based on the duration of theprogram, the data processor first analyzes the listings data todetermine what grid size listings are needed for each title. Thus, a twohour movie could require four different edited titles to fit into eachof the four different size grid cells (30, 60, 90, 120 minutes). Thedata processor then determines how much space is required to display thetitle based on its character length. If the title is to be displayed inthe program schedule grid using a proportional font and character tocharacter kerning, the data processor may also account for these factorsin determining the space required to display a title. The determinationwould than be based on the number of pixels required for the particularcombination of characters in the title. The amount of space availablefor display of a title depends on the size of the grid cell and thespace required for display of icons, when activated.

[0209] If the data processor determines that a full title requires toomuch space to fit into one or more grid cells, the title is thenpresented to the editor using a suitable display device connected to thedata processor, such as a CRT. The editor is then queried to alter thetitle so that it will fit in the allotted space. If the title must beedited for more than one cell size, the editor is queried to edit eachof these separately. In the preferred embodiment of the interactiveprogram, the editor is shown in real time whether the edited title willfit in the designated grid cell.

[0210] In the preferred embodiment, two lines of text are displayed ineach grid cell of the program listings. The title, as edited, appears onthe first line, and if necessary, continues onto the second line. Thedecision to wrap-around to the second line is based on whether naturalbreaks exist in the title such as spaces between words, commas, periods,hyphens, etc. These are standard techniques used in word processingsoftware routines. The editor may also be queried to edit a title in thesituation where the full title will fit on the allotted two lines, but ahyphen is required because there are no natural breaks in the title.

[0211] Prior to querying the editor to shorten a title, the dataprocessor compares the title with a stored library of shortened titlesto determine if the title had previously been shortened while editinganother listings database. Each time changes are made by the editor to atitle, the shortened title is added to the library. It is apparent thatthis process of building a library of shortened titles greatly reducesthe manual input required.

[0212] A flow chart illustrating the process by which the text fitsystem operates is shown in FIG. 42. The chart illustrates the operationof editing a listing for display in a program grid for a singleplatform, but operation is the same for all platforms.

[0213] Text editing may be necessary in other situations besides thatwhere multiple size grid cells are used for display of the same title.For example, the disclosed program guide may run on several differentplatforms, with each one having different constraints and grid cellspace availability. Some may not display the text in proportional fontsand some may have other limitations reducing the available space. Thus,in the preferred embodiment the interactive program would request editsfor all platforms for which they required at the same time. In addition,editing of text may be required for display modes other than a grid ofprogram listings. For example, in the “Listings by Channel” display ofFIG. 20, programs are listed on an entire, fixed-length line, but thelength of the line may vary from platform to platform, so that the textfit system may be employed for the purpose of editing listings for thedifferent platforms in this display mode as well. The space availablefor the display of text will also depend on how much space is reservedfor icon display. The same process as that shown in FIG. 42 would apply,except that there would be no need to determine what grid sizes areneeded because a fixed length line is used for display rather thanmultiple sized grid cells.

[0214] It will be apparent to those of skill in the art that thedisclosed text fit system has applications beyond that of title editingalone. The system may be easily modified to provide editing of messages,“i” screen storylines, pay-per-view promotional copy, and similar textmessages so that they will fit into the designated space available fordisplay of the text. In fact, the system may be used to edit any textfor display in the disclosed program schedule system.

[0215] The computer program for the microcontroller 16 may also includea schedule for the display of varying background views upon which theprogram schedule information is overlaid either partially or in a fullscreen display. The background views may be stored as bit maps in memoryor in another storage medium, such as an optical storage device. Forexample, the microcontroller 16 may be programmed to issue a command tothe VDG every morning at 6:00 AM to display a sunrise in the background.The background may then be changed accordingly throughout the day to,for example, a blue sky or a nighttime view. It also may vary, e.g., bytime of day, day of week, month, year or season. The mood backgroundalso could change depending on the particular category of programmingthat the user is watching or to which selected schedule informationpertains. The mood background also may be adapted to display scenes thatreflect the particular viewing area in which the user is situated, likethe Rocky Mountains, or Mt. Rainier, etc. It also may be possible todisplay standard scenes, such as an ocean or forest scene. Moreover, theaudio background also could be adjusted to relate to the particular moodbackground then being displayed. In addition, different background viewsmay be used for holidays and special events, such as Christmas, Fourthof July, Superbowl Sunday, etc. The purpose of the background views isto help ease the monotony of viewing program listings. Themicrocontroller 16 could be adapted automatically to coordinate thedisplay of the mood background. The user also could be given the abilityto choose from among various mood background displays by adapting themicrocontroller to display an appropriate mood option menu that liststhe mood background options available to the user and allows the user toselect one or more by manipulating the selection cursor. Access to sucha mood option menu could be achieved by supplying an appropriateidentifier, textual or visual, in an appropriate menu of the system,such as the LOCATOR or SETUP screen.

[0216] Additionally, the electronic program guide could be configured tostore a unique digital identifier for each program along with itsschedule information and later use the identifier—e.g., by transmittingit—to indicate to a recording or storage device, such as a videorecorder, that the user wishes to record the program. The program guidecould also use the identifier to automatically control operation of thevideo recorder. The electronic program guide could also be configured touse other stored schedule information for this purpose.

[0217] Operation of the interactive home shopping feature of the presentinvention may be explained with reference to FIG. 43. FIG. 43aillustrates a “by time” screen of the EPG listing the different programsscheduled to air at a particular time on the different channels. Asshown in FIG. 43a, certain listings are provided with an asterisk or“star” icon 401 indicating that a product or service associated witheach of the listings is available and may be ordered remotely by theuser. The remote control unit 40 discussed above may be furtherconfigured with a star button used to order products and services.Alternatively, the existing star key on the keypad 42 may be used. Theparticular icon used to designate that the indicated listing has anassociated product or service available for purchase is not part of theinvention—any convenient symbol may be used.

[0218] The screen shown in FIG. 43a indicates that two listings, “FullMetal Jacket,” and “Beverly Hills Cop III,” include associated productsor services. Upon depressing the star button on the remote control whilethe cursor is highlighting the program listing for “Full Metal Jacket,”the format selection screen shown in FIG. 43b is displayed. This screeninforms the user of the particular product or service available and thevarious options and/or formats available, as well as the price of thedifferent options and formats. As shown in FIG. 43b, the left and rightarrow buttons 43B on the remote control unit 40 are used to scrollthroughout the different formats. As the user scrolls, the pricedisplayed automatically changes to reflect the price for the currentlyselected format. Upon selection of the particular product format (bydepressing the “OK” or enter key 44 on the remote control unit 40),i.e., a VHS format cassette, the user is presented with the screen shownin FIG. 43c to select the payment method and method of shipment. Theuser may scroll through the different payment methods which may includevarious credit cards as well as the option to add the purchase price tothe user's bill for program services. At the bottom of the screen, theuser enters his credit card number and expiration date. The user mayalso scroll through various methods of shipment, and the total pricechanges accordingly based on the different shipment methods. Uponselection of the payment and shipment methods, the user is presentedwith the screen in FIG. 43d to review and confirm the order. A purchasecode may be used to prevent unauthorized persons from ordering productsor services as shown in FIG. 43e. The purchase code may be selected inadvance in the same manner as program lock-out code discussed above.

[0219] The screen in FIG. 43d may be used where the user has previouslyentered his address and phone number. The user may have previouslyentered this information in advance using a set-up screen to input allthe necessary information upon first use of the product orderingservice. The setup information may also include one or more credit cardnumbers so that when a product is ordered, the user need only select acredit card from a list previously entered. Alternatively, the user'saddress and phone number may be extracted from the program servicesbilling system.

[0220] The star icon may also be used to indicate that more than oneproduct or service associated with the television program is available.FIG. 44 illustrates one embodiment of a screen that may be presented tothe user upon depressing the star button while the cursor ishighlighting the program “48 Hours.” As shown in FIG. 44, both atranscript and tape (VHS or Beta format) are available. Using the arrowbuttons 43B on the remote control unit 40, the user highlights thedesired product and depresses the “OK” button to order the product.

[0221] Products and services may be ordered from any of the differentmodes of the EPG by including the star icon in the program scheduledisplay in each of the different modes of the system. FIG. 45illustrates use of the star icon in connection with the flip mode of thesystem discussed above.

[0222] There are many potential applications for this type of productordering service. In addition to ordering a videocassette or transcriptof a program, various ancillary products may similarly be ordered, suchas tee shirts and other apparel, books, movie soundtracks, toys, etc.The disclosed product ordering system is especially useful inconjunction with programs that are copy-protected, such as pay-per-view(PPV) movies. These programs cannot be recorded using a VCR so that thedisclosed product ordering service presents a powerful marketing tooland permits users to order their own, professionally produced, licensedcopy of, e.g., a PPV movie simply by depressing a button on their remotecontrol device. One example of a service that can be provided is theordering of tickets for television programs with live audiences. Programlistings for such programs as game shows and talk shows could utilizethe star icon to order audience or participant tickets for the show. Thestar icon may also be used with the program listings for local sportingevents to order tickets for the listed event as well as future events.

[0223] The use of the disclosed product and service ordering capabilityneed not be limited to television programs. For example, if the cablesystem operator or other program provider provides music as well astelevision channels, products and services associated with musicprograms may also be ordered through the guide. FIG. 46 illustrates oneembodiment of a screen that may be used for ordering a product orservice associated with a music program. Products that may be orderedinclude a CD or cassette tape of the song or album. The ordering servicemay also be used to order tickets to an upcoming concert of the artistthat performs the selected music program.

[0224] The use of the EPG thus presents a new vehicle for marketingprogram-related products and services capable of reaching a very largeaudience, including those who would not normally tune to existing homeshopping channels.

[0225] Product and service ordering may be readily implemented in theEPG of the present invention. The different display screens thatcomprise the EPG are controlled by the microcontroller 16, whichaccesses the program listings data for each of the programs. If the dataindicates that a product or service associated with a particular programis available, the microcontroller 16 will display the star icon wheneverthe particular program listing is displayed in the different modes ofthe EPG. The microcontroller 16 also controls the display ofuser-selected options in the EPG so that when a particular listing ishighlighted by the user, the microcontroller 16 displays appropriateordering information when the user depresses the star key on the remotecontrol unit 40 so that correct product or service information isdisplayed.

[0226] The ordering of services is discussed above in connection withFIG. 9 regarding the ordering of premium services and pay-per-viewevents. Products may be ordered in a similar manner using either atelephone line, coaxial cable, optical fiber, or wireless transmissionas the return path for placing user orders. There are many techniquesknown in the art that may be used for providing information on productsand services ordered by a subscriber to a cable television service at aremote location for processing at a central location. For example, thesame techniques used for billing subscribers for pay-per-view events maybe applied to product ordering as well. In one embodiment, themicrocontroller 16 stores subscriber orders in memory for subsequenttransmission using the subscriber's telephone lines. The microcontroller16 is programmed to dial the central ordering location to placesubscriber orders. Typically, a toll free “800” number is utilized forthis purpose and calls are placed at times when the subscriber is notlikely to be using the telephone. The microcontroller 16 may beprogrammed so that orders are accumulated throughout the day and a callis placed once per day to transmit all the accumulated orders.

[0227] Another possible technique for placing orders is to use the cableitself. This technique may be used in both one-way and two-way cableplants. In a one-way cable plant system, orders may be stored at theuser location in a set-top box provided by a local cable system. Theset-top box may then be polled by the cable headend using techniquesknown in the art to determine if any orders are stored for transmissionto the cable headend. If orders are present, they are provided to thecable headend for processing.

[0228] A two-way cable plant is most advantageous if real-time orderingcapability is desired. Using the return channel, orders may be placedand immediately transmitted upstream to the cable headend where they canbe processed or forwarded to a separate processing center. In thismanner, orders may readily be processed the same day and shipped to theuser via overnight courier.

[0229] Another possible technique is to control the call-in of ordersfrom subscribers from the central location. For example, the cableheadend could poll the subscribers and program the set-top boxes to callthe central location at a particular time so as to stagger the call-intimes and avoid overloading the processing center. Finally, it is alsopossible for the cable headend to connect to each user's set top box viatelephone lines and call-out to each viewer sequentially to determine ifany orders are pending.

[0230] It is also possible to maintain the product ordering featureentirely separate from the cable system or other program provideroperations. The entity providing the EPG may maintain its own processingequipment at the cable system headend or other program provider locationso as to receive order requests directly from users without the need forany pre-processing by the cable headend. User requests identified asproduct orders may then be diverted directly to the EPG provider'sprocessing equipment. This type of system architecture allows for morecentralized management of a nationwide product ordering system.

[0231] The information on each of the products and services availablemay be provided to the users in any of a number of ways. In oneembodiment, the database of program schedule information stored at eachuser location may include all the information for each product andservice—a description of the product(s) or service(s), price, and anyother information required. The disadvantage of this method, however, isthat if a large number of programs include products and servicesavailable for ordering, the demands on the system memory are great.Another method is to standardize the products and services available soas to include in the database only a minimal amount of informationnecessary to identify the type of product or service. For example, ifonly videocassettes and transcripts are available, the database needonly include a flag for each listing indicating whether a videocassette,transcript, or both are available. Further simplification is possible ifall transcripts and all videocassettes are priced the same. The screensillustrated in FIGS. 43-46 may then be standardized screens for allproducts so as to conserve memory space.

[0232] It will be recognized by those of ordinary skill in the art thatmany variations are possible. To provide more flexibility, differentcategories of products and services may be established for differenttypes of programs, such as movies, news programs, sports, pay-per-view,etc. The microcontroller 16 may then be configured to select the productor service information displayed to the user based on the type ofprogram. In this manner, when the user depresses the product orderingicon on the remote control, the microcontroller 16 determines the typeof program displayed in the program guide and selects the appropriateordering screens for display. Similarly, with regard to price, differentcategories of prices may be set. The microcontroller 16 may then readthe price category for the product from the database and display theappropriate price for the product in the screens 43-46.

[0233] An alternate embodiment of the disclosed product ordering systemmay be implemented as follows. Rather than indicating the availabilityof a product or service only in association with the program listingsstored at the user location, product availability may be indicated whenthe user is not in one of the program schedule display modes byoverlaying the star icon on a program display signal if there is aproduct or service associated with that program. In this manner,products and services associated with programs not included in theprogram schedule information database stored in DRAM 18 may also be madeavailable to users. This embodiment is especially useful in connectionwith commercial advertisements and permits the user to place an orderfor the product or service being advertised using the remote controldevice 40. Alternatively, the user may simply request to be placed on amailing list to receive additional information about the product orservice being advertised as well as other related products and services.

[0234] This alternate embodiment (which may be used in conjunction withthe above-described embodiment) may be implemented as follows. Thereceived program signal for the commercial or other program may includethe information about the product or service associated with theprogram. The information may be included in the vertical blankinginterval (VBI) of a standard analog television signal, a technique wellknown to those of ordinary skill in the art. Similarly, the informationmay be included in an in-band digital channel for programs delivered indigital form. One advantage of including the information in the VBI oran in-band digital channel is that it eliminates the need to consumememory space at the user location to store product and serviceinformation.

[0235] The modified system illustrated in the block diagram of FIG.47 isone embodiment of a system that incorporates a product ordering systemusing the VBI into the program schedule system of the present invention.In this modified system, a second receiver 30 is used to receive thetelevision channel signal tuned by tuner 28 under control ofmicrocontroller 16. The signal is then provided to a VBI decoder 30Awhich decodes the data contained in the VBI of the received televisionsignal. This data is then provided to buffer 15 and microcontroller 16in the manner described above for the program schedule information. Themicrocontroller 16 then determines whether the currently-tuned channelis displaying a program for which a product or service is available asindicated by the data in the VBI. If there is a product or serviceavailable, microcontroller 16 causes the product availability icon to beoverlaid on the television signal. In a preferred embodiment, thecurrently-tuned television signal comprises a commercial advertisementand the product or service available is associated with the commercial.Either a one-step or multi-step ordering process may be utilized. Forexample, in the simplest embodiment, only a single product, i.e., aproduct brochure, may be available. In this case, the microcontroller 16may be configured to cause the video overlay device 25 to display astandard on-screen message such as “Press * to receive a brochuredescribing this product.” This embodiment assumes that the user haspreviously provided his name and address or that the information isextracted from the program services billing system as discussed above.Alternatively, a multi-step process similar to that described above maybe implemented. Upon depressing the ordering icon key, themicrocontroller 16 may extract additional information from the VBIdescribing the product or service and cause the video overlay device 25to display it on the receiver. The microcontroller may then present aseries of screens to the user similar to those shown in FIG. 43 toobtain the information required from the user. In this case, however,the information for composing the screens is obtained from the programsignal rather than the stored program schedule information. It is alsopossible to store the screen formats as bit maps in memory and use theinformation from the VBI to complete the information in the screens.

[0236] If the user chooses to order the product or service, themicrocontroller receives the request and may process it as follows. Inthe simplest embodiment, the microcontroller may simply time and channelstamp the request. By providing the time of the request and the channeltuned by the user at the time of the request, the system operator maydetermine the commercial or other program the viewer was watching at thetime the product or service was ordered and thus provide the correctproduct or service to the user. Alternatively, in a more sophisticatedsystem, the microcontroller 16 may extract from the VBI or in-banddigital channel product identification information and include theinformation with the user's request to identify the product or serviceordered. The user's request may then be provided to the cable headendand processed in any of the manners described above in connection withproducts and services associated with a program listing.

[0237] The form and content of a particular computer program toimplement the invention disclosed herein will be readily apparent tothose skilled in the art of video system programming and graphicdisplay. A flow chart showing the operation logic of the system is shownin FIGS. 36a-d. It will also be appreciated by those skilled in the artthat there can be departure from the specific embodiment of theinvention described herein without departing from the true scope of theclaims appended hereto.

We claim:
 1. A method for presenting a purchase opportunity to a userwith an interactive television program guide, comprising: displayingtelevision programming on a display; displaying an overlay on top of thetelevision programming that indicates to the user that there is apurchase opportunity, wherein program listings are not displayed in theoverlay; and allowing the user to respond to the purchase opportunity byusing the electronic television program guide.
 2. The method defined inclaim 1 wherein program listings are not being displayed on the display.3. The method defined in claim 1 wherein the overlay indicates a singleaction that the user may perform to respond to the purchase opportunity.4. The method defined in claim 3 wherein the single action comprisesselecting a single button on a remote control.
 5. The method defined inclaim 1 wherein the overlay includes information on the product.
 6. Themethod defined in claim 1 further comprising generating a user productrequest in response to a user response to the purchase opportunity. 7.The method defined in claim 1 further comprising displaying informationon available payment methods for purchasing the product in the overlay.8. The method defined in claim 1 further comprising allowing the user toselect a desired payment method for purchasing the product in theoverlay.
 9. The method defined in claim 1 further comprising allowingthe user to purchase the product using a credit card.
 10. The methoddefined in claim 1 further comprising allowing the user to enter acredit card number for use in purchasing the product.
 11. The methoddefined in claim 1 further comprising allowing the user to select acredit card to use in ordering the product from a list.
 12. The methoddefined in claim 1 further comprising displaying information onavailable shipping methods for shipping the product.
 13. The methoddefined in claim 1 further comprising allowing the user to select adesired shipping method for shipping the product.
 14. The method definedin claim 1 further comprising: displaying information on a plurality ofdifferent available shipping methods for shipping the product; anddisplaying different price information for each shipping method.
 15. Themethod defined in claim 1 further comprising allowing the user toconfirm an order for the product.
 16. The method defined in claim 1further comprising presenting a screen that allows the user to enteraddress information that is used when ordering the product.
 17. Themethod defined in claim 1 further comprising extracting the user'saddress from a program services billing system.
 18. The method definedin claim 1 further comprising: tuning a television tuner to one of aplurality of television channels; determining whether the channel towhich the tuner is tuned is displaying a program for which a product isavailable; and displaying the overlay in response to a determinationthat the product is available.
 19. A system for presenting a purchaseopportunity to a user with an interactive television program guide,comprising: means for displaying television programming on a display;means for displaying an overlay on top of the television programmingthat indicates to the user that there is a purchase opportunity, whereinprogram listings are not displayed in the overlay; and means forallowing the user to respond to the purchase opportunity by using theelectronic television program guide.
 20. The system defined in claim 19wherein program listings are not being displayed on the display.
 21. Thesystem defined in claim 19 wherein the overlay indicates a single actionthat the user may perform to respond to the purchase opportunity. 22.The system defined in claim 21 wherein the single action comprisesselecting a single button on a remote control.
 23. The system defined inclaim 19 wherein the overlay includes information on the product. 24.The system defined in claim 19 further comprising means for generating auser product request in response to a user response to the purchaseopportunity.
 25. The system defined in claim 19 further comprising meansfor displaying information on available payment methods for purchasingthe product in the overlay.
 26. The system defined in claim 19 furthercomprising means for allowing the user to select a desired paymentmethod for purchasing the product in the overlay.
 27. The system definedin claim 19 further comprising means for allowing the user to purchasethe product using a credit card.
 28. The system defined in claim 19further comprising means for allowing the user to enter a credit cardnumber for use in purchasing the product.
 29. The system defined inclaim 19 further comprising means for allowing the user to select acredit card to use in ordering the product from a list.
 30. The systemdefined in claim 19 further comprising means for displaying informationon available shipping methods for shipping the product.
 31. The systemdefined in claim 19 further comprising means for allowing the user toselect a desired shipping method for shipping the product.
 32. Thesystem defined in claim 19 further comprising: means for displayinginformation on a plurality of different available shipping methods forshipping the product; and means for displaying different priceinformation for each shipping method.
 33. The system defined in claim 19further comprising means for allowing the user to confirm an order forthe product.
 34. The system defined in claim 19 further comprising meansfor presenting a screen that allows the user to enter addressinformation that is used when ordering the product.
 35. The systemdefined in claim 19 further comprising means for extracting the user'saddress from a program services billing system.
 36. The system definedin claim 19 further comprising: means for tuning a television tuner toone of a plurality of television channels; means for determining whetherthe channel to which the tuner is tuned is displaying a program forwhich a product is available; and means for displaying the overlay inresponse to a determination that the product is available.
 37. A systemfor presenting a purchase opportunity to a user with an interactivetelevision program guide, the system comprising user televisionequipment configured to: display television programming on a display;display an overlay on top of the television programming that indicatesto the user that there is a purchase opportunity, wherein programlistings are not displayed in the overlay; and allow the user to respondto the purchase opportunity by using the electronic television programguide.
 38. The system defined in claim 37 wherein the user televisionequipment is further configured to not display program listings on thedisplay.
 39. The system defined in claim 37 wherein the user televisionequipment is further configured to display a single action that the usermay perform to respond to the purchase opportunity in the overlay. 40.The system defined in claim 39 wherein the single action comprisesselecting a single button on a remote control.
 41. The system defined inclaim 37 wherein the user television equipment is further configured todisplay information on the product in the overlay.
 42. The systemdefined in claim 37 wherein the user television equipment is furtherconfigured to generate a user product request in response to a userresponse to the purchase opportunity.
 43. The system defined in claim 37wherein the user television equipment is further configured to displayinformation on available payment methods for purchasing the product inthe overlay.
 44. The system defined in claim 37 wherein the usertelevision equipment is further configured to allow the user to select adesired payment method for purchasing the product in the overlay. 45.The system defined in claim 37 wherein the user television equipment isfurther configured to allow the user to purchase the product using acredit card.
 46. The system defined in claim 37 wherein the usertelevision equipment is further configured to allow the user to enter acredit card number for use in purchasing the product.
 47. The systemdefined in claim 37 wherein the user television equipment is furtherconfigured to allow the user to select a credit card to use in orderingthe product from a list.
 48. The system defined in claim 37 wherein theuser television equipment is further configured to display informationon available shipping methods for shipping the product.
 49. The systemdefined in claim 37 wherein the user television equipment is furtherconfigured to allow the user to select a desired shipping method forshipping the product.
 50. The system defined in claim 37 wherein theuser television equipment is further configured to: display informationon a plurality of different available shipping methods for shipping theproduct; and display different price information for each shippingmethod.
 51. The system defined in claim 37 wherein the user televisionequipment is further configured to allow the user to confirm an orderfor the product.
 52. The system defined in claim 37 wherein the usertelevision equipment is further configured to present a screen thatallows the user to enter address information that is used when orderingthe product.
 53. The system defined in claim 37 wherein the usertelevision equipment is coupled to a product ordering system configuredto extract the user's address from a program services billing system.54. The system defined in claim 37 wherein the user television equipmentis further configured to: tune a television tuner to one of a pluralityof television channels; determine whether the channel to which the tuneris tuned is displaying a program for which a product is available; anddisplay the overlay in response to a determination that the product isavailable.
 55. Machine-readable media for an interactive televisionprogram guide, the machine-readable media comprising program logicrecorded thereon for: displaying television programming on a display;displaying an overlay on top of the television programming thatindicates to the user that there is a purchase opportunity, whereinprogram listings are not displayed in the overlay; and allowing the userto respond to the purchase opportunity by using the electronictelevision program guide.
 56. The machine-readable media defined inclaim 55 wherein program listings are not being displayed on thedisplay.
 57. The machine-readable media defined in claim 55 wherein theoverlay indicates a single action that the user may perform to respondto the purchase opportunity.
 58. The machine-readable media defined inclaim 57 wherein the single action comprises selecting a single buttonon a remote control.
 59. The machine-readable media defined in claim 55wherein the overlay includes information on the product.
 60. Themachine-readable media defined in claim 55 further comprising logicrecorded thereon for generating a user product request in response to auser response to the purchase opportunity.
 61. The machine-readablemedia defined in claim 55 further comprising logic recorded thereon fordisplaying information on available payment methods for purchasing theproduct in the overlay.
 62. The machine-readable media defined in claim55 further comprising logic recorded thereon for allowing the user toselect a desired payment method for purchasing the product in theoverlay.
 63. The machine-readable media defined in claim 55 furthercomprising logic recorded thereon for allowing the user to purchase theproduct using a credit card.
 64. The machine-readable media defined inclaim 55 further comprising logic recorded thereon for allowing the userto enter a credit card number for use in purchasing the product.
 65. Themachine-readable media defined in claim 55 further comprising logicrecorded thereon for allowing the user to select a credit card to use inordering the product from a list.
 66. The machine-readable media definedin claim 55 further comprising logic recorded thereon for displayinginformation on available shipping methods for shipping the product. 67.The machine-readable media defined in claim 55 further comprising logicrecorded thereon for allowing the user to select a desired shippingmethod for shipping the product.
 68. The machine-readable media definedin claim 55 further comprising logic recorded thereon for: displayinginformation on a plurality of different available shipping methods forshipping the product; and displaying different price information foreach shipping method.
 69. The machine-readable media defined in claim 55further comprising logic recorded thereon for allowing the user toconfirm an order for the product.
 70. The machine-readable media definedin claim 55 further comprising logic recorded thereon for presenting ascreen that allows the user to enter address information that is usedwhen ordering the product.
 71. The machine-readable media defined inclaim 55 further comprising logic recorded thereon for extracting theuser's address from a program services billing system.
 72. Themachine-readable media defined in claim 55 further comprising logicrecorded thereon for: tuning a television tuner to one of a plurality oftelevision channels; determining whether the channel to which the tuneris tuned is displaying a program for which a product is available; anddisplaying the overlay in response to a determination that the productis available.